feat: implement central db migrations #144
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These changes implement the following:
/migrations
directory instead of embedded module-specific migrations.Summary of the changes made across multiple files:
Interface Changes (
pkg/application/interface.go
):MigrationDirs()
methodRegisterMigrationDirs()
methodApplication Implementation (
pkg/application/application.go
):CollectMigrations()
to read from filesystem instead of embedded filesModule Cleanup:
RegisterMigrationDirs()
calls from:modules/bichat/module.go
modules/core/module.go
modules/crm/module.go
modules/finance/module.go
modules/logging/module.go
modules/warehouse/module.go
migrationFiles
variables from modulesMigration Directory (
pkg/commands/migrate_command.go
):ensureDirectories()
to create only the migrations directorySQL Parser Enhancements (
pkg/schema/ast/parser.go
):referencesPattern
regex to parse REFERENCES clausesParseColumnDefinition
to extract reference information:Migration Generator Improvements (
pkg/schema/diff/generator.go
):Generate
method to:sortChangesByDependencies
method for topological sortingisTableInList
helper for duplicate detectionOutput from migration targets