Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Feature request: Repeatable migrations for managing functions and views #238

Open
@rohanliston

Description

Feature description

Flyway has the concept of repeatable migrations that are (re-)applied to a database on migrate every time their checksum changes.

This differs from the 'current' migration concept in Graphile Migrate, which as far as I understand is purely for development purposes.

Repeatable migrations are very useful for managing database objects whose definition can then simply be maintained in a single file in version control. They are typically used for

* (Re-)creating views/procedures/functions/packages/...
* Bulk reference data reinserts

Implementing #209 would probably make this possible with hooks, but I have found it such a useful concept that I think it warrants consideration as a feature.

Motivating example

I've used this Flyway feature on many projects to manage stored procedures and functions and am really missing it now that I am using Graphile Migrate.

I've tried replicating the functionality with the afterCurrent and afterAllMigrations hooks, but:

  • In watch mode, I have to go and make a dummy edit to current.sql in order to pick up the changes to my "repeatable" migrations.
  • In migrate mode, the "repeatable" migrations don't run at all because the migrations have all been applied already.

Supporting development

I [tick all that apply]:

(I'd love to implement this myself but realistically don't think I would have time, but am happy to assist otherwise).

  • am interested in building this feature myself
  • am interested in collaborating on building this feature
  • am willing to help testing this feature before it's released
  • am willing to write a test-driven test suite for this feature (before it exists)
  • am a Graphile sponsor ❤️
  • have an active support or consultancy contract with Graphile

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /