@deterministic-code/migraters 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +149 -0
- package/bundle.yaml +20 -28
- package/cli.yaml +276 -0
- package/csharp/Abstractions/IConnectionResolver.cs +6 -0
- package/csharp/Abstractions/IMigrateCommand.cs +7 -0
- package/csharp/Abstractions/IMigrater.cs +20 -0
- package/csharp/Abstractions/ISqlDialect.cs +23 -0
- package/csharp/Abstractions/ISqlDialectFactory.cs +7 -0
- package/csharp/Abstractions/SqlDialect.cs +78 -0
- package/csharp/Abstractions/SqlDialectFactory.cs +24 -0
- package/csharp/Dialects/Mysql/MigrateMysql.csproj +14 -0
- package/csharp/Dialects/Mysql/MysqlCreateDatabase.cs +21 -0
- package/csharp/Dialects/Mysql/MysqlDialect.cs +44 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateCore.dll +0 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateCore.pdb +0 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateMysql.deps.json +213 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateMysql.dll +0 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateMysql.pdb +0 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/cli.yaml +276 -0
- package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/down.txt +3 -5
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/help/init.txt +15 -0
- package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/setup.txt +4 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
- package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
- package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/down/destructive-header.txt +0 -1
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateM.E580FE7A.Up2Date +0 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.AssemblyInfo.cs +22 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.AssemblyInfoInputs.cache +1 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.GeneratedMSBuildEditorConfig.editorconfig +18 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.GlobalUsings.g.cs +8 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.assets.cache +0 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.csproj.AssemblyReference.cache +0 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.csproj.CoreCompileInputs.cache +1 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.csproj.FileListAbsolute.txt +63 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.dll +0 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.pdb +0 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.sourcelink.json +1 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/ref/MigrateMysql.dll +0 -0
- package/csharp/Dialects/Mysql/obj/Debug/net9.0/refint/MigrateMysql.dll +0 -0
- package/csharp/Dialects/Mysql/obj/MigrateMysql.csproj.nuget.dgspec.json +172 -0
- package/csharp/Dialects/Mysql/obj/MigrateMysql.csproj.nuget.g.props +15 -0
- package/csharp/Dialects/Mysql/obj/MigrateMysql.csproj.nuget.g.targets +6 -0
- package/csharp/Dialects/Mysql/obj/project.assets.json +5081 -0
- package/csharp/Dialects/Mysql/obj/project.nuget.cache +94 -0
- package/csharp/Dialects/Oracle/MigrateOracle.csproj +14 -0
- package/csharp/Dialects/Oracle/OracleDialect.cs +30 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateCore.dll +0 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateCore.pdb +0 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateOracle.deps.json +343 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateOracle.dll +0 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateOracle.pdb +0 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/cli.yaml +276 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/create.txt +16 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/down.txt +40 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/init.txt +15 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/setup.txt +45 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/up.txt +43 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
- package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateO.BD46121C.Up2Date +0 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.AssemblyInfo.cs +22 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.AssemblyInfoInputs.cache +1 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.GeneratedMSBuildEditorConfig.editorconfig +18 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.GlobalUsings.g.cs +8 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.assets.cache +0 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.csproj.AssemblyReference.cache +0 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.csproj.CoreCompileInputs.cache +1 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.csproj.FileListAbsolute.txt +63 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.dll +0 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.pdb +0 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.sourcelink.json +1 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/ref/MigrateOracle.dll +0 -0
- package/csharp/Dialects/Oracle/obj/Debug/net9.0/refint/MigrateOracle.dll +0 -0
- package/csharp/Dialects/Oracle/obj/MigrateOracle.csproj.nuget.dgspec.json +172 -0
- package/csharp/Dialects/Oracle/obj/MigrateOracle.csproj.nuget.g.props +15 -0
- package/csharp/Dialects/Oracle/obj/MigrateOracle.csproj.nuget.g.targets +2 -0
- package/csharp/Dialects/Oracle/obj/project.assets.json +5414 -0
- package/csharp/Dialects/Oracle/obj/project.nuget.cache +101 -0
- package/csharp/Dialects/Postgres/MigratePostgres.csproj +14 -0
- package/csharp/Dialects/Postgres/PostgresCreateDatabase.cs +31 -0
- package/csharp/Dialects/Postgres/PostgresDialect.cs +43 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigrateCore.dll +0 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigrateCore.pdb +0 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigratePostgres.deps.json +212 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigratePostgres.dll +0 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigratePostgres.pdb +0 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/cli.yaml +276 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/create.txt +16 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/down.txt +40 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/init.txt +15 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/setup.txt +45 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/up.txt +43 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
- package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigrateP.DF842641.Up2Date +0 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.AssemblyInfo.cs +22 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.AssemblyInfoInputs.cache +1 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.GeneratedMSBuildEditorConfig.editorconfig +18 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.GlobalUsings.g.cs +8 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.assets.cache +0 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.csproj.AssemblyReference.cache +0 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.csproj.CoreCompileInputs.cache +1 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.csproj.FileListAbsolute.txt +63 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.dll +0 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.pdb +0 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.sourcelink.json +1 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/ref/MigratePostgres.dll +0 -0
- package/csharp/Dialects/Postgres/obj/Debug/net9.0/refint/MigratePostgres.dll +0 -0
- package/csharp/Dialects/Postgres/obj/MigratePostgres.csproj.nuget.dgspec.json +172 -0
- package/csharp/Dialects/Postgres/obj/MigratePostgres.csproj.nuget.g.props +15 -0
- package/csharp/Dialects/Postgres/obj/MigratePostgres.csproj.nuget.g.targets +6 -0
- package/csharp/Dialects/Postgres/obj/project.assets.json +5068 -0
- package/csharp/Dialects/Postgres/obj/project.nuget.cache +94 -0
- package/csharp/Dialects/SqlServer/MigrateSqlServer.csproj +14 -0
- package/csharp/Dialects/SqlServer/SqlServerCreateDatabase.cs +21 -0
- package/csharp/Dialects/SqlServer/SqlServerDialect.cs +21 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateCore.dll +0 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateCore.pdb +0 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateSqlServer.deps.json +727 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateSqlServer.dll +0 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateSqlServer.pdb +0 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/cli.yaml +276 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/create.txt +16 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/down.txt +40 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/init.txt +15 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/setup.txt +45 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/up.txt +43 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
- package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateS.6604771C.Up2Date +0 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.AssemblyInfo.cs +22 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.AssemblyInfoInputs.cache +1 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.GeneratedMSBuildEditorConfig.editorconfig +18 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.GlobalUsings.g.cs +8 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.assets.cache +0 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.csproj.AssemblyReference.cache +0 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.csproj.CoreCompileInputs.cache +1 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.csproj.FileListAbsolute.txt +63 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.dll +0 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.pdb +0 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.sourcelink.json +1 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/ref/MigrateSqlServer.dll +0 -0
- package/csharp/Dialects/SqlServer/obj/Debug/net9.0/refint/MigrateSqlServer.dll +0 -0
- package/csharp/Dialects/SqlServer/obj/MigrateSqlServer.csproj.nuget.dgspec.json +172 -0
- package/csharp/Dialects/SqlServer/obj/MigrateSqlServer.csproj.nuget.g.props +15 -0
- package/csharp/Dialects/SqlServer/obj/MigrateSqlServer.csproj.nuget.g.targets +7 -0
- package/csharp/Dialects/SqlServer/obj/project.assets.json +6391 -0
- package/csharp/Dialects/SqlServer/obj/project.nuget.cache +122 -0
- package/csharp/Dialects/Sqlite/MigrateSqlite.csproj +14 -0
- package/csharp/Dialects/Sqlite/SqliteDialect.cs +77 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateCore.dll +0 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateCore.pdb +0 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateSqlite.deps.json +376 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateSqlite.dll +0 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateSqlite.pdb +0 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/cli.yaml +276 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/create.txt +16 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/down.txt +40 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/init.txt +15 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/setup.txt +45 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/up.txt +43 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
- package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateS.4867C581.Up2Date +0 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.AssemblyInfo.cs +22 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.AssemblyInfoInputs.cache +1 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.GeneratedMSBuildEditorConfig.editorconfig +18 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.GlobalUsings.g.cs +8 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.assets.cache +0 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.csproj.AssemblyReference.cache +0 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.csproj.CoreCompileInputs.cache +1 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.csproj.FileListAbsolute.txt +63 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.dll +0 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.pdb +0 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.sourcelink.json +1 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/ref/MigrateSqlite.dll +0 -0
- package/csharp/Dialects/Sqlite/obj/Debug/net9.0/refint/MigrateSqlite.dll +0 -0
- package/csharp/Dialects/Sqlite/obj/MigrateSqlite.csproj.nuget.dgspec.json +172 -0
- package/csharp/Dialects/Sqlite/obj/MigrateSqlite.csproj.nuget.g.props +15 -0
- package/csharp/Dialects/Sqlite/obj/MigrateSqlite.csproj.nuget.g.targets +6 -0
- package/csharp/Dialects/Sqlite/obj/project.assets.json +5263 -0
- package/csharp/Dialects/Sqlite/obj/project.nuget.cache +99 -0
- package/csharp/GlobalUsings.cs +6 -0
- package/csharp/Infrastructure/Checksum.cs +18 -0
- package/csharp/Infrastructure/CliSpec.cs +228 -0
- package/csharp/Infrastructure/ConnectionResolver.cs +9 -0
- package/csharp/Infrastructure/ConnectionStringUrl.cs +47 -0
- package/csharp/Infrastructure/CreateDatabase.cs +7 -0
- package/csharp/Infrastructure/DbExecute.cs +81 -0
- package/csharp/Infrastructure/HelpTemplates.cs +47 -0
- package/csharp/Infrastructure/MigrateCli.cs +159 -0
- package/csharp/Infrastructure/MigrateLog.cs +54 -0
- package/csharp/Infrastructure/Migrater.cs +157 -0
- package/csharp/Infrastructure/Migrations.cs +105 -0
- package/csharp/Infrastructure/SqlTemplates.cs +10 -0
- package/csharp/MigrateCreate.cs +114 -0
- package/csharp/MigrateDown.cs +147 -0
- package/csharp/MigrateRunner.Core.csproj +66 -0
- package/csharp/MigrateRunner.csproj +63 -0
- package/csharp/MigrateRunnerServices.cs +55 -0
- package/csharp/MigrateSetup.cs +145 -0
- package/csharp/MigrateUp.cs +122 -0
- package/csharp/Program.cs +40 -0
- package/{dist → orchestrator/dist}/cli-spec.d.ts +1 -1
- package/{dist → orchestrator/dist}/cli-spec.js +10 -2
- package/orchestrator/dist/config.d.ts +13 -0
- package/orchestrator/dist/config.js +48 -0
- package/orchestrator/dist/dialects.d.ts +2 -0
- package/orchestrator/dist/dialects.js +25 -0
- package/orchestrator/dist/dispatch.d.ts +9 -0
- package/orchestrator/dist/dispatch.js +36 -0
- package/{dist → orchestrator/dist}/help.d.ts +0 -1
- package/orchestrator/dist/help.js +36 -0
- package/orchestrator/dist/languages.d.ts +4 -0
- package/orchestrator/dist/languages.js +12 -0
- package/orchestrator/dist/manifests.d.ts +8 -0
- package/orchestrator/dist/manifests.js +53 -0
- package/orchestrator/dist/migrate-create.js +3 -0
- package/orchestrator/dist/migrate-down.js +3 -0
- package/orchestrator/dist/migrate-init.js +37 -0
- package/orchestrator/dist/migrate-setup.js +3 -0
- package/orchestrator/dist/migrate-up.js +3 -0
- package/orchestrator/dist/parse-init.d.ts +12 -0
- package/orchestrator/dist/parse-init.js +56 -0
- package/orchestrator/dist/repo.d.ts +2 -0
- package/orchestrator/dist/repo.js +19 -0
- package/orchestrator/dist/run-init.d.ts +2 -0
- package/orchestrator/dist/run-init.js +66 -0
- package/orchestrator/dist/run.d.ts +3 -0
- package/orchestrator/dist/run.js +16 -0
- package/orchestrator/prepare.js +21 -0
- package/{tsconfig.build.json → orchestrator/tsconfig.json} +1 -1
- package/package.json +47 -59
- package/rust/Cargo.lock +393 -0
- package/rust/Cargo.toml +29 -0
- package/rust/api/Cargo.toml +8 -0
- package/rust/api/src/lib.rs +231 -0
- package/rust/dialects/mysql/Cargo.toml +11 -0
- package/rust/dialects/mysql/src/lib.rs +231 -0
- package/rust/dialects/oracle/Cargo.toml +11 -0
- package/rust/dialects/oracle/src/lib.rs +245 -0
- package/rust/dialects/postgres/Cargo.toml +11 -0
- package/rust/dialects/postgres/src/lib.rs +235 -0
- package/rust/dialects/sqlite/Cargo.toml +11 -0
- package/rust/dialects/sqlite/src/lib.rs +286 -0
- package/rust/dialects/sqlserver/Cargo.toml +12 -0
- package/rust/dialects/sqlserver/src/lib.rs +235 -0
- package/rust/rustfmt.toml +2 -0
- package/rust/src/abstractions/factory.rs +17 -0
- package/rust/src/abstractions/mod.rs +5 -0
- package/rust/src/abstractions/sql_dialect.rs +1 -0
- package/rust/src/argv.rs +15 -0
- package/rust/src/attached_dialects.rs +2 -0
- package/rust/src/bin/migrate_create.rs +97 -0
- package/rust/src/bin/migrate_down.rs +151 -0
- package/rust/src/bin/migrate_setup.rs +153 -0
- package/rust/src/bin/migrate_up.rs +126 -0
- package/rust/src/checksum.rs +55 -0
- package/rust/src/cli_spec.rs +249 -0
- package/rust/src/dialects/mod.rs +4 -0
- package/rust/src/help.rs +10 -0
- package/rust/src/infrastructure/connection_resolver.rs +8 -0
- package/rust/src/infrastructure/create_database.rs +15 -0
- package/rust/src/infrastructure/mod.rs +9 -0
- package/rust/src/infrastructure/pool.rs +79 -0
- package/rust/src/infrastructure/split_on_go.rs +48 -0
- package/rust/src/lib.rs +115 -0
- package/rust/src/messages.rs +102 -0
- package/rust/src/migrater.rs +224 -0
- package/rust/src/migrations.rs +151 -0
- package/rust/src/provider.rs +57 -0
- package/shared/templates/help/create.txt +16 -0
- package/shared/templates/help/down.txt +40 -0
- package/shared/templates/help/init.txt +15 -0
- package/shared/templates/help/setup.txt +45 -0
- package/shared/templates/help/up.txt +43 -0
- package/shared/templates/messages/checksum-drift-line.txt +1 -0
- package/shared/templates/messages/checksum-drift.txt +11 -0
- package/shared/templates/messages/down/confirm-mismatch.txt +1 -0
- package/shared/templates/messages/down/confirm-prompt.txt +1 -0
- package/shared/templates/messages/down/confirm-stdin-failed.txt +1 -0
- package/shared/templates/messages/down/confirm-token-mismatch.txt +1 -0
- package/shared/templates/messages/down/confirm-tty-required.txt +1 -0
- package/shared/templates/messages/down/destructive-header.txt +2 -0
- package/shared/templates/messages/errors/invalid-name.txt +1 -0
- package/shared/templates/messages/errors/migrate-path-not-dir.txt +1 -0
- package/shared/templates/messages/errors/missing-connection.txt +1 -0
- package/shared/templates/messages/errors/missing-name-hint.txt +1 -0
- package/shared/templates/messages/errors/missing-name.txt +1 -0
- package/shared/templates/messages/errors/missing-provider-hint.txt +1 -0
- package/shared/templates/messages/errors/missing-provider.txt +1 -0
- package/shared/templates/messages/errors/missing-value-for-flag.txt +1 -0
- package/shared/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
- package/shared/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
- package/shared/templates/messages/errors/rollback-not-in-path.txt +1 -0
- package/shared/templates/messages/errors/sqlite-prerequisite.txt +1 -0
- package/shared/templates/messages/errors/unknown-arg.txt +1 -0
- package/shared/templates/messages/errors/unsupported-provider.txt +1 -0
- package/shared/templates/messages/setup-complete.txt +9 -0
- package/shared/templates/messages/status/applied.txt +1 -0
- package/shared/templates/messages/status/created.txt +1 -0
- package/shared/templates/messages/status/no-more-pending.txt +1 -0
- package/shared/templates/messages/status/no-pending.txt +1 -0
- package/shared/templates/messages/status/no-rollback.txt +1 -0
- package/shared/templates/messages/status/rolled-back.txt +1 -0
- package/shared/templates/scaffold/down.sql +1 -0
- package/shared/templates/scaffold/up.sql +1 -0
- package/shared/templates/sql/mysql/migrate_logs.sql +11 -0
- package/shared/templates/sql/mysql/migrates.sql +7 -0
- package/shared/templates/sql/oracle/migrate_logs.sql +14 -0
- package/shared/templates/sql/oracle/migrates.sql +10 -0
- package/shared/templates/sql/postgres/migrate_logs.sql +11 -0
- package/shared/templates/sql/postgres/migrates.sql +7 -0
- package/shared/templates/sql/sqlite/migrate_logs.sql +11 -0
- package/shared/templates/sql/sqlite/migrates.sql +7 -0
- package/shared/templates/sql/sqlserver/migrate_logs.sql +12 -0
- package/shared/templates/sql/sqlserver/migrates.sql +8 -0
- package/typescript/bundle.yaml +254 -0
- package/typescript/dialects/mysql/package.json +12 -0
- package/typescript/dialects/mysql/src/index.ts +4 -0
- package/{src/dialects → typescript/dialects/mysql/src}/mysql-dialect.test.ts +6 -0
- package/{src/dialects → typescript/dialects/mysql/src}/mysql-dialect.ts +20 -12
- package/typescript/dialects/oracle/package.json +13 -0
- package/typescript/dialects/oracle/src/index.ts +4 -0
- package/{src/dialects → typescript/dialects/oracle/src}/oracle-dialect.ts +4 -4
- package/typescript/dialects/postgres/package.json +13 -0
- package/typescript/dialects/postgres/src/index.ts +4 -0
- package/{src/dialects → typescript/dialects/postgres/src}/postgres-dialect.test.ts +18 -0
- package/{src/dialects → typescript/dialects/postgres/src}/postgres-dialect.ts +20 -3
- package/typescript/dialects/sqlite/package.json +13 -0
- package/typescript/dialects/sqlite/src/index.ts +4 -0
- package/{src/dialects → typescript/dialects/sqlite/src}/sqlite-dialect.test.ts +1 -1
- package/{src/dialects → typescript/dialects/sqlite/src}/sqlite-dialect.ts +5 -5
- package/typescript/dialects/sqlserver/package.json +13 -0
- package/typescript/dialects/sqlserver/src/index.ts +4 -0
- package/{src/dialects → typescript/dialects/sqlserver/src}/sqlserver-dialect.test.ts +10 -0
- package/{src/dialects → typescript/dialects/sqlserver/src}/sqlserver-dialect.ts +20 -4
- package/typescript/package.json +46 -0
- package/{src → typescript/src}/abstractions/sql-dialect-base.ts +2 -0
- package/{src → typescript/src}/abstractions/sql-dialect.ts +1 -0
- package/{src → typescript/src}/bin/migrate-down.ts +13 -35
- package/{src → typescript/src}/bin/migrate-setup.ts +8 -0
- package/{src → typescript/src}/cli-spec.ts +10 -1
- package/typescript/src/create-database.test.ts +18 -0
- package/typescript/src/create-database.ts +7 -0
- package/{src → typescript/src}/datasource-migrate.ts +1 -1
- package/typescript/src/infrastructure/default-factory.test.ts +30 -0
- package/typescript/src/infrastructure/default-factory.ts +41 -0
- package/typescript/src/infrastructure/mysql-text-protocol.ts +7 -0
- package/{src → typescript/src}/infrastructure/templates-root.ts +3 -0
- package/{src → typescript/src}/init-select.test.ts +8 -0
- package/{src → typescript/src}/init-select.ts +13 -9
- package/typescript/tsconfig.build.json +20 -0
- package/dist/abstractions/migrater.d.ts +0 -28
- package/dist/abstractions/migrater.js +0 -1
- package/dist/abstractions/sql-dialect-base.d.ts +0 -16
- package/dist/abstractions/sql-dialect-base.js +0 -19
- package/dist/abstractions/sql-dialect-factory.d.ts +0 -8
- package/dist/abstractions/sql-dialect-factory.js +0 -22
- package/dist/abstractions/sql-dialect.d.ts +0 -16
- package/dist/abstractions/sql-dialect.js +0 -1
- package/dist/bin/migrate-create.js +0 -71
- package/dist/bin/migrate-down.js +0 -135
- package/dist/bin/migrate-init.js +0 -77
- package/dist/bin/migrate-setup.js +0 -87
- package/dist/bin/migrate-up.js +0 -97
- package/dist/cli-contract.d.ts +0 -6
- package/dist/cli-contract.js +0 -19
- package/dist/cli.d.ts +0 -9
- package/dist/cli.js +0 -41
- package/dist/create-sequence.d.ts +0 -4
- package/dist/create-sequence.js +0 -16
- package/dist/datasource-migrate.d.ts +0 -31
- package/dist/datasource-migrate.js +0 -206
- package/dist/dialects/mysql-dialect.d.ts +0 -12
- package/dist/dialects/mysql-dialect.js +0 -56
- package/dist/dialects/oracle-dialect.d.ts +0 -18
- package/dist/dialects/oracle-dialect.js +0 -76
- package/dist/dialects/postgres-dialect.d.ts +0 -11
- package/dist/dialects/postgres-dialect.js +0 -58
- package/dist/dialects/sqlite-dialect.d.ts +0 -13
- package/dist/dialects/sqlite-dialect.js +0 -96
- package/dist/dialects/sqlserver-dialect.d.ts +0 -12
- package/dist/dialects/sqlserver-dialect.js +0 -73
- package/dist/help.js +0 -10
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -6
- package/dist/infrastructure/connection-resolver.d.ts +0 -7
- package/dist/infrastructure/connection-resolver.js +0 -19
- package/dist/infrastructure/default-factory.d.ts +0 -4
- package/dist/infrastructure/default-factory.js +0 -15
- package/dist/infrastructure/interop-default.d.ts +0 -3
- package/dist/infrastructure/interop-default.js +0 -1
- package/dist/infrastructure/message-templates.d.ts +0 -3
- package/dist/infrastructure/message-templates.js +0 -18
- package/dist/infrastructure/split-on-go.d.ts +0 -2
- package/dist/infrastructure/split-on-go.js +0 -20
- package/dist/infrastructure/sql-templates.d.ts +0 -2
- package/dist/infrastructure/sql-templates.js +0 -4
- package/dist/infrastructure/templates-root.d.ts +0 -2
- package/dist/infrastructure/templates-root.js +0 -11
- package/dist/init-select.d.ts +0 -12
- package/dist/init-select.js +0 -52
- package/dist/migrater.d.ts +0 -12
- package/dist/migrater.js +0 -84
- package/dist/migration-client.d.ts +0 -21
- package/dist/migration-client.js +0 -1
- package/dist/path-exists.d.ts +0 -1
- package/dist/path-exists.js +0 -10
- package/dist/sql.d.ts +0 -3
- package/dist/sql.js +0 -15
- package/dist/templates/help/init.txt +0 -13
- package/dist/templates/messages/down/confirm-prompt.txt +0 -1
- package/dist/templates/messages/down/confirm-token-mismatch.txt +0 -1
- package/dist/templates/messages/down/confirm-tty-required.txt +0 -1
- package/src/bin/migrate-init.ts +0 -88
- package/src/infrastructure/default-factory.test.ts +0 -18
- package/src/infrastructure/default-factory.ts +0 -17
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/create.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/up.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/checksum-drift-line.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/checksum-drift.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/down/confirm-mismatch.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/down/confirm-stdin-failed.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/invalid-name.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/migrate-path-not-dir.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-connection.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-name-hint.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-name.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-provider-hint.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-provider.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-value-for-flag.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/rollback-no-down-sibling.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/rollback-no-rollback-sibling.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/rollback-not-in-path.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/sqlite-prerequisite.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/unknown-arg.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/unsupported-provider.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/setup-complete.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/applied.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/created.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/no-more-pending.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/no-pending.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/no-rollback.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/rolled-back.txt +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/scaffold/down.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/scaffold/up.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/mysql/migrate_logs.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/mysql/migrates.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/oracle/migrate_logs.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/oracle/migrates.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/postgres/migrate_logs.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/postgres/migrates.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlite/migrate_logs.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlite/migrates.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlserver/migrate_logs.sql +0 -0
- /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlserver/migrates.sql +0 -0
- /package/{dist/bin → orchestrator/dist}/migrate-create.d.ts +0 -0
- /package/{dist/bin → orchestrator/dist}/migrate-down.d.ts +0 -0
- /package/{dist/bin → orchestrator/dist}/migrate-init.d.ts +0 -0
- /package/{dist/bin → orchestrator/dist}/migrate-setup.d.ts +0 -0
- /package/{dist/bin → orchestrator/dist}/migrate-up.d.ts +0 -0
- /package/{src/dialects → typescript/dialects/oracle/src}/oracle-dialect.test.ts +0 -0
- /package/{src/dialects → typescript/dialects/sqlite/src}/sqlite-dialect.rollback.test.ts +0 -0
- /package/{src → typescript/src}/abstractions/migrater.ts +0 -0
- /package/{src → typescript/src}/abstractions/sql-dialect-factory.ts +0 -0
- /package/{src → typescript/src}/bin/migrate-create.ts +0 -0
- /package/{src → typescript/src}/bin/migrate-up.ts +0 -0
- /package/{src → typescript/src}/cli-contract.ts +0 -0
- /package/{src → typescript/src}/cli.ts +0 -0
- /package/{src → typescript/src}/create-sequence.ts +0 -0
- /package/{src → typescript/src}/generate-help.test.ts +0 -0
- /package/{src → typescript/src}/generate-help.ts +0 -0
- /package/{src → typescript/src}/help.test.ts +0 -0
- /package/{src → typescript/src}/help.ts +0 -0
- /package/{src → typescript/src}/index.ts +0 -0
- /package/{src → typescript/src}/infrastructure/connection-resolver.ts +0 -0
- /package/{src → typescript/src}/infrastructure/interop-default.test.ts +0 -0
- /package/{src → typescript/src}/infrastructure/interop-default.ts +0 -0
- /package/{src → typescript/src}/infrastructure/message-templates.ts +0 -0
- /package/{src → typescript/src}/infrastructure/split-on-go.ts +0 -0
- /package/{src → typescript/src}/infrastructure/sql-templates.ts +0 -0
- /package/{src → typescript/src}/migrater.ts +0 -0
- /package/{src → typescript/src}/migration-client.ts +0 -0
- /package/{src → typescript/src}/path-exists.ts +0 -0
- /package/{src → typescript/src}/setup-sql.test.ts +0 -0
- /package/{src → typescript/src}/sql.ts +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal static class MigrateCli
|
|
4
|
+
{
|
|
5
|
+
internal static readonly string[] Verbs = ["setup", "up", "down", "create"];
|
|
6
|
+
|
|
7
|
+
internal static string? VerbFromHost()
|
|
8
|
+
{
|
|
9
|
+
string?[] candidates = [Environment.ProcessPath, Environment.GetCommandLineArgs()[0]];
|
|
10
|
+
foreach (var raw in candidates)
|
|
11
|
+
{
|
|
12
|
+
if (string.IsNullOrEmpty(raw))
|
|
13
|
+
continue;
|
|
14
|
+
var name = Path.GetFileNameWithoutExtension(raw);
|
|
15
|
+
if (!name.StartsWith("migrate-", StringComparison.OrdinalIgnoreCase))
|
|
16
|
+
continue;
|
|
17
|
+
var verb = name["migrate-".Length..].ToLowerInvariant();
|
|
18
|
+
if (Verbs.Contains(verb))
|
|
19
|
+
return verb;
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
internal static string NormalizeVerb(string sub)
|
|
25
|
+
{
|
|
26
|
+
if (sub.StartsWith("migrate-", StringComparison.OrdinalIgnoreCase))
|
|
27
|
+
sub = sub["migrate-".Length..];
|
|
28
|
+
return sub.ToLowerInvariant();
|
|
29
|
+
}
|
|
30
|
+
internal static bool TryResolveProvider(
|
|
31
|
+
ISqlDialectFactory dialects,
|
|
32
|
+
IConnectionResolver connections,
|
|
33
|
+
string provider,
|
|
34
|
+
string? connection,
|
|
35
|
+
out ISqlDialect dialect,
|
|
36
|
+
out string resolvedConnection,
|
|
37
|
+
out string error
|
|
38
|
+
)
|
|
39
|
+
{
|
|
40
|
+
dialect = null!;
|
|
41
|
+
resolvedConnection = connection ?? string.Empty;
|
|
42
|
+
error = string.Empty;
|
|
43
|
+
if (!dialects.TryGet(provider, out dialect))
|
|
44
|
+
return Fail(
|
|
45
|
+
HelpTemplates.Message(
|
|
46
|
+
"errors/unsupported-provider",
|
|
47
|
+
new Dictionary<string, string> { ["provider"] = provider }
|
|
48
|
+
),
|
|
49
|
+
out error
|
|
50
|
+
);
|
|
51
|
+
if (string.IsNullOrEmpty(resolvedConnection))
|
|
52
|
+
resolvedConnection = connections.FromEnvironment(dialect) ?? string.Empty;
|
|
53
|
+
if (string.IsNullOrEmpty(resolvedConnection))
|
|
54
|
+
{
|
|
55
|
+
return Fail(
|
|
56
|
+
HelpTemplates.Message(
|
|
57
|
+
"errors/missing-connection",
|
|
58
|
+
new Dictionary<string, string>
|
|
59
|
+
{
|
|
60
|
+
["envVars"] = EnvVarsList(dialect.ConnectionEnvironmentVariables),
|
|
61
|
+
}
|
|
62
|
+
),
|
|
63
|
+
out error
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
internal static string MigratePath(string provider, string? migratePath, string? migrateRoot) =>
|
|
70
|
+
string.IsNullOrEmpty(migratePath) ? $"{migrateRoot ?? "sql"}/{provider}/migrations" : migratePath;
|
|
71
|
+
|
|
72
|
+
internal static bool TryTakeFlag(
|
|
73
|
+
string[] args,
|
|
74
|
+
ref int i,
|
|
75
|
+
string current,
|
|
76
|
+
string flag,
|
|
77
|
+
out string value
|
|
78
|
+
)
|
|
79
|
+
{
|
|
80
|
+
if (current == flag)
|
|
81
|
+
{
|
|
82
|
+
if (i + 1 >= args.Length)
|
|
83
|
+
{
|
|
84
|
+
value = string.Empty;
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
value = args[++i];
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
var eq = flag + "=";
|
|
91
|
+
if (!current.StartsWith(eq, StringComparison.Ordinal))
|
|
92
|
+
{
|
|
93
|
+
value = string.Empty;
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
value = current[eq.Length..];
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
internal static string? NormalizeProvider(string raw)
|
|
101
|
+
{
|
|
102
|
+
var key = CliSpec.StripKey(raw);
|
|
103
|
+
foreach (var provider in CliSpec.Providers)
|
|
104
|
+
{
|
|
105
|
+
if (CliSpec.StripKey(provider) == key)
|
|
106
|
+
return provider;
|
|
107
|
+
}
|
|
108
|
+
return CliSpec.ProviderAliases.TryGetValue(key, out var canonical) ? canonical : null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
internal static string EnvVarsList(IEnumerable<string> vars) =>
|
|
112
|
+
string.Join(CliSpec.EnvVarListSeparator, vars);
|
|
113
|
+
|
|
114
|
+
internal static bool MissingProvider(out string error)
|
|
115
|
+
{
|
|
116
|
+
error = HelpTemplates.Message("errors/missing-provider");
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
internal static bool MissingName(out string error)
|
|
121
|
+
{
|
|
122
|
+
error = HelpTemplates.Message("errors/missing-name");
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
internal static bool IsValueFlag(string arg)
|
|
127
|
+
{
|
|
128
|
+
ReadOnlySpan<string> flags =
|
|
129
|
+
[
|
|
130
|
+
"--provider",
|
|
131
|
+
"--connection",
|
|
132
|
+
"--migrations-path",
|
|
133
|
+
"--migrate-path",
|
|
134
|
+
"--migrations-root",
|
|
135
|
+
"--migrate-root",
|
|
136
|
+
"--name",
|
|
137
|
+
];
|
|
138
|
+
foreach (var flag in flags)
|
|
139
|
+
{
|
|
140
|
+
if (arg == flag || arg.StartsWith(flag + "=", StringComparison.Ordinal))
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
internal static string ParseArgError(string arg, bool missingValue) =>
|
|
147
|
+
missingValue
|
|
148
|
+
? HelpTemplates.Message(
|
|
149
|
+
"errors/missing-value-for-flag",
|
|
150
|
+
new Dictionary<string, string> { ["flag"] = arg }
|
|
151
|
+
)
|
|
152
|
+
: HelpTemplates.Message("errors/unknown-arg", new Dictionary<string, string> { ["arg"] = arg });
|
|
153
|
+
|
|
154
|
+
private static bool Fail(string message, out string error)
|
|
155
|
+
{
|
|
156
|
+
error = message;
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal static class MigrateLog
|
|
4
|
+
{
|
|
5
|
+
public static async Task<long> InsertStartedAsync(
|
|
6
|
+
DbConnection conn,
|
|
7
|
+
ISqlDialect dialect,
|
|
8
|
+
string name,
|
|
9
|
+
string direction
|
|
10
|
+
)
|
|
11
|
+
{
|
|
12
|
+
var t = dialect.QuoteIdent("migrate_logs");
|
|
13
|
+
var insert =
|
|
14
|
+
$"INSERT INTO {t} ({dialect.QuoteIdent("migrate_name")}, {dialect.QuoteIdent("direction")}, {dialect.QuoteIdent("status")}) VALUES ({dialect.Placeholder("p1")}, {dialect.Placeholder("p2")}, 'started')";
|
|
15
|
+
await DbExecute.CatalogWriteAsync(conn, null, dialect, insert, ("p1", name), ("p2", direction))
|
|
16
|
+
.ConfigureAwait(false);
|
|
17
|
+
|
|
18
|
+
var select =
|
|
19
|
+
$"SELECT {dialect.QuoteIdent("id")} AS id FROM {t} WHERE {dialect.QuoteIdent("migrate_name")} = {dialect.Placeholder("p1")} AND {dialect.QuoteIdent("direction")} = {dialect.Placeholder("p2")} ORDER BY {dialect.QuoteIdent("id")} DESC {dialect.LimitClause(1)}";
|
|
20
|
+
using var cmd = conn.CreateCommand();
|
|
21
|
+
cmd.CommandText = select;
|
|
22
|
+
dialect.AddParameter(cmd, "p1", name);
|
|
23
|
+
dialect.AddParameter(cmd, "p2", direction);
|
|
24
|
+
var value = await cmd.ExecuteScalarAsync().ConfigureAwait(false);
|
|
25
|
+
return Convert.ToInt64(value, CultureInfo.InvariantCulture);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public static async Task UpdateAsync(
|
|
29
|
+
DbConnection conn,
|
|
30
|
+
ISqlDialect dialect,
|
|
31
|
+
long id,
|
|
32
|
+
string status,
|
|
33
|
+
long durationMs,
|
|
34
|
+
string? errorMessage
|
|
35
|
+
)
|
|
36
|
+
{
|
|
37
|
+
var t = dialect.QuoteIdent("migrate_logs");
|
|
38
|
+
var now = dialect.NowExpr;
|
|
39
|
+
var sql =
|
|
40
|
+
$"UPDATE {t} SET {dialect.QuoteIdent("status")} = {dialect.Placeholder("p1")}, {dialect.QuoteIdent("finished_at")} = {now}, {dialect.QuoteIdent("duration_ms")} = {dialect.Placeholder("p2")}, {dialect.QuoteIdent("error_message")} = {dialect.Placeholder("p3")}, {dialect.QuoteIdent("updated")} = {now} WHERE {dialect.QuoteIdent("id")} = {dialect.Placeholder("p4")}";
|
|
41
|
+
await DbExecute
|
|
42
|
+
.CatalogWriteAsync(
|
|
43
|
+
conn,
|
|
44
|
+
null,
|
|
45
|
+
dialect,
|
|
46
|
+
sql,
|
|
47
|
+
("p1", status),
|
|
48
|
+
("p2", durationMs),
|
|
49
|
+
("p3", (object?)errorMessage ?? DBNull.Value),
|
|
50
|
+
("p4", id)
|
|
51
|
+
)
|
|
52
|
+
.ConfigureAwait(false);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal sealed class Migrater(ISqlDialect dialect) : IMigrater
|
|
4
|
+
{
|
|
5
|
+
public string Name => dialect.Name;
|
|
6
|
+
|
|
7
|
+
public async Task Setup(SetupArg args)
|
|
8
|
+
{
|
|
9
|
+
dialect.PrepareSetup(args.Connection);
|
|
10
|
+
await using var conn = dialect.CreateConnection(dialect.NormalizeConnectionString(args.Connection));
|
|
11
|
+
await conn.OpenAsync().ConfigureAwait(false);
|
|
12
|
+
await DbExecute.NonQueryAsync(conn, null, dialect.MigratesDdl).ConfigureAwait(false);
|
|
13
|
+
await DbExecute.NonQueryAsync(conn, null, dialect.MigrateLogsDdl).ConfigureAwait(false);
|
|
14
|
+
Directory.CreateDirectory(args.MigrationsPath);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public async Task<IReadOnlyList<string>> Up(UpArg args)
|
|
18
|
+
{
|
|
19
|
+
await using var conn = dialect.CreateConnection(dialect.NormalizeConnectionString(args.Connection));
|
|
20
|
+
await conn.OpenAsync().ConfigureAwait(false);
|
|
21
|
+
|
|
22
|
+
var files = Migrations.OrderedUpFiles(args.MigrationsPath);
|
|
23
|
+
var applied = await Migrations.AppliedChecksumsAsync(conn, dialect.SelectAppliedChecksumSql).ConfigureAwait(false);
|
|
24
|
+
Migrations.AssertNoChecksumDrift(files, applied);
|
|
25
|
+
var names = new List<string>();
|
|
26
|
+
while (true)
|
|
27
|
+
{
|
|
28
|
+
var next = files.FirstOrDefault(f => !applied.ContainsKey(f.Name));
|
|
29
|
+
if (next is null)
|
|
30
|
+
return names;
|
|
31
|
+
|
|
32
|
+
var sql = await File.ReadAllTextAsync(next.UpPath).ConfigureAwait(false);
|
|
33
|
+
var checksum = Checksum.Hex(sql);
|
|
34
|
+
var logId = await MigrateLog.InsertStartedAsync(conn, dialect, next.Name, "up").ConfigureAwait(false);
|
|
35
|
+
var started = DateTime.UtcNow;
|
|
36
|
+
try
|
|
37
|
+
{
|
|
38
|
+
await DbExecute
|
|
39
|
+
.ApplyStatementsAsync(
|
|
40
|
+
conn,
|
|
41
|
+
dialect,
|
|
42
|
+
sql,
|
|
43
|
+
tx =>
|
|
44
|
+
DbExecute.CatalogWriteAsync(
|
|
45
|
+
conn,
|
|
46
|
+
tx,
|
|
47
|
+
dialect,
|
|
48
|
+
dialect.InsertAppliedSql,
|
|
49
|
+
("p1", next.Name),
|
|
50
|
+
("p2", checksum)
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
.ConfigureAwait(false);
|
|
54
|
+
await MigrateLog
|
|
55
|
+
.UpdateAsync(conn, dialect, logId, "success", (long)(DateTime.UtcNow - started).TotalMilliseconds, null)
|
|
56
|
+
.ConfigureAwait(false);
|
|
57
|
+
}
|
|
58
|
+
catch (Exception ex)
|
|
59
|
+
{
|
|
60
|
+
await MigrateLog
|
|
61
|
+
.UpdateAsync(conn, dialect, logId, "error", (long)(DateTime.UtcNow - started).TotalMilliseconds, ex.Message)
|
|
62
|
+
.ConfigureAwait(false);
|
|
63
|
+
throw;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
applied[next.Name] = checksum;
|
|
67
|
+
names.Add(next.Name);
|
|
68
|
+
if (args.One)
|
|
69
|
+
return names;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public async Task<string?> Down(DownArg args)
|
|
74
|
+
{
|
|
75
|
+
await using var conn = dialect.CreateConnection(dialect.NormalizeConnectionString(args.Connection));
|
|
76
|
+
await conn.OpenAsync().ConfigureAwait(false);
|
|
77
|
+
|
|
78
|
+
var files = Migrations.OrderedUpFiles(args.MigrationsPath);
|
|
79
|
+
var applied = await Migrations.AppliedChecksumsAsync(conn, dialect.SelectAppliedChecksumSql).ConfigureAwait(false);
|
|
80
|
+
if (applied.Count == 0)
|
|
81
|
+
return null;
|
|
82
|
+
Migrations.AssertNoChecksumDrift(files, applied);
|
|
83
|
+
var last = files.LastOrDefault(f => applied.ContainsKey(f.Name));
|
|
84
|
+
if (last is null)
|
|
85
|
+
throw new InvalidOperationException(HelpTemplates.Message("errors/rollback-not-in-path"));
|
|
86
|
+
|
|
87
|
+
var path =
|
|
88
|
+
Migrations.DownPathFor(args.MigrationsPath, last.Name)
|
|
89
|
+
?? throw new FileNotFoundException(
|
|
90
|
+
HelpTemplates.Message(
|
|
91
|
+
"errors/rollback-no-down-sibling",
|
|
92
|
+
new Dictionary<string, string> { ["name"] = last.Name }
|
|
93
|
+
)
|
|
94
|
+
);
|
|
95
|
+
var sql = await File.ReadAllTextAsync(path).ConfigureAwait(false);
|
|
96
|
+
var logId = await MigrateLog.InsertStartedAsync(conn, dialect, last.Name, "down").ConfigureAwait(false);
|
|
97
|
+
var started = DateTime.UtcNow;
|
|
98
|
+
try
|
|
99
|
+
{
|
|
100
|
+
await DbExecute
|
|
101
|
+
.ApplyStatementsAsync(
|
|
102
|
+
conn,
|
|
103
|
+
dialect,
|
|
104
|
+
sql,
|
|
105
|
+
tx =>
|
|
106
|
+
DbExecute.CatalogWriteAsync(
|
|
107
|
+
conn,
|
|
108
|
+
tx,
|
|
109
|
+
dialect,
|
|
110
|
+
dialect.DeleteAppliedSql,
|
|
111
|
+
("p1", last.Name)
|
|
112
|
+
)
|
|
113
|
+
)
|
|
114
|
+
.ConfigureAwait(false);
|
|
115
|
+
await MigrateLog
|
|
116
|
+
.UpdateAsync(conn, dialect, logId, "success", (long)(DateTime.UtcNow - started).TotalMilliseconds, null)
|
|
117
|
+
.ConfigureAwait(false);
|
|
118
|
+
}
|
|
119
|
+
catch (Exception ex)
|
|
120
|
+
{
|
|
121
|
+
await MigrateLog
|
|
122
|
+
.UpdateAsync(conn, dialect, logId, "error", (long)(DateTime.UtcNow - started).TotalMilliseconds, ex.Message)
|
|
123
|
+
.ConfigureAwait(false);
|
|
124
|
+
throw;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return last.Name;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
public Task<CreateResponse> Create(CreateArg args)
|
|
131
|
+
{
|
|
132
|
+
if (!Migrations.IsMigrationName(args.Name))
|
|
133
|
+
throw new InvalidOperationException(
|
|
134
|
+
HelpTemplates.Message("errors/invalid-name", new Dictionary<string, string> { ["name"] = args.Name })
|
|
135
|
+
);
|
|
136
|
+
Directory.CreateDirectory(args.MigrationsPath);
|
|
137
|
+
var prefix = NextSequenceFromDir(args.MigrationsPath).ToString("D4", CultureInfo.InvariantCulture);
|
|
138
|
+
var upName = $"{prefix}_{args.Name}_up.sql";
|
|
139
|
+
var downName = $"{prefix}_{args.Name}_down.sql";
|
|
140
|
+
File.WriteAllText(
|
|
141
|
+
Path.Combine(args.MigrationsPath, upName),
|
|
142
|
+
HelpTemplates.Scaffold("up", new Dictionary<string, string> { ["name"] = args.Name })
|
|
143
|
+
);
|
|
144
|
+
File.WriteAllText(
|
|
145
|
+
Path.Combine(args.MigrationsPath, downName),
|
|
146
|
+
HelpTemplates.Scaffold("down", new Dictionary<string, string> { ["name"] = args.Name })
|
|
147
|
+
);
|
|
148
|
+
return Task.FromResult(new CreateResponse(upName, downName));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private static int NextSequenceFromDir(string dir) =>
|
|
152
|
+
!Directory.Exists(dir)
|
|
153
|
+
? 1
|
|
154
|
+
: Migrations.NextSequence(
|
|
155
|
+
Directory.EnumerateFiles(dir).Select(Path.GetFileName).OfType<string>()
|
|
156
|
+
);
|
|
157
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal sealed record MigrationFile(string Name, string UpPath);
|
|
4
|
+
|
|
5
|
+
internal static class Migrations
|
|
6
|
+
{
|
|
7
|
+
private static readonly Regex NameRe = new("^[a-z][a-z0-9_]*$", RegexOptions.Compiled);
|
|
8
|
+
private static readonly Regex SeqRe = new(@"^(\d{1,4})_.*_up\.sql$", RegexOptions.Compiled);
|
|
9
|
+
|
|
10
|
+
public static bool IsMigrationName(string name) => NameRe.IsMatch(name);
|
|
11
|
+
|
|
12
|
+
public static int NextSequence(IEnumerable<string> fileNames) =>
|
|
13
|
+
fileNames
|
|
14
|
+
.Select(f => SeqRe.Match(f))
|
|
15
|
+
.Where(m => m.Success)
|
|
16
|
+
.Select(m => int.Parse(m.Groups[1].Value, CultureInfo.InvariantCulture))
|
|
17
|
+
.DefaultIfEmpty(0)
|
|
18
|
+
.Max() + 1;
|
|
19
|
+
|
|
20
|
+
public static IReadOnlyList<MigrationFile> OrderedUpFiles(string migratePath)
|
|
21
|
+
{
|
|
22
|
+
if (!Directory.Exists(migratePath))
|
|
23
|
+
throw new DirectoryNotFoundException(
|
|
24
|
+
HelpTemplates.Message(
|
|
25
|
+
"errors/migrate-path-not-dir",
|
|
26
|
+
new Dictionary<string, string> { ["path"] = migratePath }
|
|
27
|
+
)
|
|
28
|
+
);
|
|
29
|
+
return Directory
|
|
30
|
+
.EnumerateFiles(migratePath)
|
|
31
|
+
.Where(p => Path.GetFileName(p).EndsWith("_up.sql", StringComparison.Ordinal))
|
|
32
|
+
.OrderBy(p => Path.GetFileName(p), StringComparer.Ordinal)
|
|
33
|
+
.Select(p =>
|
|
34
|
+
{
|
|
35
|
+
var file = Path.GetFileName(p);
|
|
36
|
+
return new MigrationFile(file[..^"_up.sql".Length], p);
|
|
37
|
+
})
|
|
38
|
+
.ToList();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public static string CatalogName(string stored) =>
|
|
42
|
+
stored.EndsWith("_up.sql", StringComparison.Ordinal) ? stored[..^"_up.sql".Length] : stored;
|
|
43
|
+
|
|
44
|
+
public static async Task<Dictionary<string, string?>> AppliedChecksumsAsync(
|
|
45
|
+
DbConnection conn,
|
|
46
|
+
string sql
|
|
47
|
+
)
|
|
48
|
+
{
|
|
49
|
+
var map = new Dictionary<string, string?>(StringComparer.Ordinal);
|
|
50
|
+
using var cmd = conn.CreateCommand();
|
|
51
|
+
cmd.CommandText = sql;
|
|
52
|
+
using var reader = await cmd.ExecuteReaderAsync().ConfigureAwait(false);
|
|
53
|
+
while (await reader.ReadAsync().ConfigureAwait(false))
|
|
54
|
+
{
|
|
55
|
+
var name = CatalogName(reader.GetString(0));
|
|
56
|
+
var checksum = reader.IsDBNull(1) ? null : reader.GetString(1);
|
|
57
|
+
map[name] = checksum;
|
|
58
|
+
}
|
|
59
|
+
return map;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public static void AssertNoChecksumDrift(
|
|
63
|
+
IReadOnlyList<MigrationFile> files,
|
|
64
|
+
IReadOnlyDictionary<string, string?> applied
|
|
65
|
+
)
|
|
66
|
+
{
|
|
67
|
+
if (Environment.GetEnvironmentVariable("MIGRATE_ALLOW_CHECKSUM_DRIFT") == "1")
|
|
68
|
+
return;
|
|
69
|
+
var lines = new List<string>();
|
|
70
|
+
foreach (var file in files)
|
|
71
|
+
{
|
|
72
|
+
if (!applied.TryGetValue(file.Name, out var stored) || stored is null)
|
|
73
|
+
continue;
|
|
74
|
+
var current = Checksum.Hex(File.ReadAllText(file.UpPath));
|
|
75
|
+
if (current == stored)
|
|
76
|
+
continue;
|
|
77
|
+
lines.Add(
|
|
78
|
+
HelpTemplates
|
|
79
|
+
.Message(
|
|
80
|
+
"checksum-drift-line",
|
|
81
|
+
new Dictionary<string, string>
|
|
82
|
+
{
|
|
83
|
+
["name"] = file.Name,
|
|
84
|
+
["stored"] = stored.Length <= 12 ? stored : stored[..12],
|
|
85
|
+
["current"] = current.Length <= 12 ? current : current[..12],
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
.TrimEnd()
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
if (lines.Count == 0)
|
|
92
|
+
return;
|
|
93
|
+
throw new InvalidOperationException(
|
|
94
|
+
HelpTemplates
|
|
95
|
+
.Message("checksum-drift", new Dictionary<string, string> { ["lines"] = string.Join('\n', lines) })
|
|
96
|
+
.TrimEnd()
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public static string? DownPathFor(string migratePath, string name)
|
|
101
|
+
{
|
|
102
|
+
var path = Path.Combine(migratePath, $"{name}_down.sql");
|
|
103
|
+
return File.Exists(path) ? path : null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal static class SqlTemplates
|
|
4
|
+
{
|
|
5
|
+
public static string Read(string dialect, string name) =>
|
|
6
|
+
File.ReadAllText(
|
|
7
|
+
Path.Combine(AppContext.BaseDirectory, "templates", "sql", dialect, $"{name}.sql")
|
|
8
|
+
)
|
|
9
|
+
.Trim();
|
|
10
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// Scaffolds a new <NNNN>_<name>_{up,down}.sql pair in the migrations directory. Numbering is max(1-4-digit prefix in dir)+1; legacy timestamp prefixes are ignored.
|
|
2
|
+
|
|
3
|
+
namespace Deterministic.MigrateRunner;
|
|
4
|
+
|
|
5
|
+
internal sealed class MigrateCreate(ISqlDialectFactory dialects) : IMigrateCommand
|
|
6
|
+
{
|
|
7
|
+
private static readonly string HelpText = HelpTemplates.Read("create");
|
|
8
|
+
|
|
9
|
+
public string Name => "create";
|
|
10
|
+
|
|
11
|
+
public async Task<int> RunAsync(string[] args)
|
|
12
|
+
{
|
|
13
|
+
if (!TryParse(args, out var provider, out var name, out var migrationsPath, out var showHelp, out var error))
|
|
14
|
+
return showHelp ? WriteHelp() : Fail(error);
|
|
15
|
+
|
|
16
|
+
if (!dialects.TryGet(provider, out var dialect))
|
|
17
|
+
return Fail(
|
|
18
|
+
HelpTemplates.Message(
|
|
19
|
+
"errors/unsupported-provider",
|
|
20
|
+
new Dictionary<string, string> { ["provider"] = provider }
|
|
21
|
+
)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
var dir = migrationsPath ?? $"./sql/{dialect.Name}/migrations";
|
|
25
|
+
try
|
|
26
|
+
{
|
|
27
|
+
var created = await new Migrater(dialect).Create(new CreateArg(name, dir)).ConfigureAwait(false);
|
|
28
|
+
Console.WriteLine(
|
|
29
|
+
HelpTemplates.Message("status/created", new Dictionary<string, string> { ["file"] = created.UpName })
|
|
30
|
+
);
|
|
31
|
+
Console.WriteLine(
|
|
32
|
+
HelpTemplates.Message("status/created", new Dictionary<string, string> { ["file"] = created.DownName })
|
|
33
|
+
);
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
catch (Exception ex)
|
|
37
|
+
{
|
|
38
|
+
return Fail($"migrate-create failed: {ex.Message}", 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private static bool TryParse(
|
|
43
|
+
string[] args,
|
|
44
|
+
out string provider,
|
|
45
|
+
out string name,
|
|
46
|
+
out string? migrationsPath,
|
|
47
|
+
out bool showHelp,
|
|
48
|
+
out string error
|
|
49
|
+
)
|
|
50
|
+
{
|
|
51
|
+
provider = string.Empty;
|
|
52
|
+
name = string.Empty;
|
|
53
|
+
migrationsPath = null;
|
|
54
|
+
showHelp = false;
|
|
55
|
+
error = string.Empty;
|
|
56
|
+
|
|
57
|
+
for (var i = 0; i < args.Length; i++)
|
|
58
|
+
{
|
|
59
|
+
var a = args[i];
|
|
60
|
+
if (a is "-h" or "--help")
|
|
61
|
+
{
|
|
62
|
+
showHelp = true;
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (MigrateCli.TryTakeFlag(args, ref i, a, "--provider", out var takenProvider))
|
|
66
|
+
{
|
|
67
|
+
provider = takenProvider;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (MigrateCli.TryTakeFlag(args, ref i, a, "--name", out var takenName))
|
|
71
|
+
{
|
|
72
|
+
name = takenName;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (MigrateCli.TryTakeFlag(args, ref i, a, "--migrations-path", out var takenPath)
|
|
76
|
+
|| MigrateCli.TryTakeFlag(args, ref i, a, "--migrate-path", out takenPath))
|
|
77
|
+
{
|
|
78
|
+
migrationsPath = takenPath;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
error = MigrateCli.ParseArgError(a, MigrateCli.IsValueFlag(a) && i + 1 >= args.Length);
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (string.IsNullOrEmpty(provider))
|
|
87
|
+
return MigrateCli.MissingProvider(out error);
|
|
88
|
+
if (string.IsNullOrEmpty(name))
|
|
89
|
+
return MigrateCli.MissingName(out error);
|
|
90
|
+
if (!Migrations.IsMigrationName(name))
|
|
91
|
+
{
|
|
92
|
+
error = HelpTemplates.Message(
|
|
93
|
+
"errors/invalid-name",
|
|
94
|
+
new Dictionary<string, string> { ["name"] = name }
|
|
95
|
+
);
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
private static int WriteHelp()
|
|
102
|
+
{
|
|
103
|
+
Console.Error.Write(HelpText);
|
|
104
|
+
return 0;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private static int Fail(string error, int code = 2)
|
|
108
|
+
{
|
|
109
|
+
Console.Error.WriteLine(error);
|
|
110
|
+
if (code == 2)
|
|
111
|
+
Console.Error.Write(HelpText);
|
|
112
|
+
return code;
|
|
113
|
+
}
|
|
114
|
+
}
|