@deterministic-code/migraters 0.0.2 → 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 -1
- package/bundle.yaml +20 -28
- package/cli.yaml +24 -12
- 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/orchestrator/tsconfig.json +19 -0
- package/package.json +49 -62
- 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/typescript/dialects/mysql/src/mysql-dialect.test.ts +99 -0
- package/typescript/dialects/mysql/src/mysql-dialect.ts +75 -0
- package/typescript/dialects/oracle/package.json +13 -0
- package/typescript/dialects/oracle/src/index.ts +4 -0
- package/typescript/dialects/oracle/src/oracle-dialect.test.ts +118 -0
- package/typescript/dialects/oracle/src/oracle-dialect.ts +91 -0
- package/typescript/dialects/postgres/package.json +13 -0
- package/typescript/dialects/postgres/src/index.ts +4 -0
- package/typescript/dialects/postgres/src/postgres-dialect.test.ts +98 -0
- package/typescript/dialects/postgres/src/postgres-dialect.ts +82 -0
- package/typescript/dialects/sqlite/package.json +13 -0
- package/typescript/dialects/sqlite/src/index.ts +4 -0
- package/typescript/dialects/sqlite/src/sqlite-dialect.rollback.test.ts +30 -0
- package/typescript/dialects/sqlite/src/sqlite-dialect.test.ts +77 -0
- package/typescript/dialects/sqlite/src/sqlite-dialect.ts +96 -0
- package/typescript/dialects/sqlserver/package.json +13 -0
- package/typescript/dialects/sqlserver/src/index.ts +4 -0
- package/typescript/dialects/sqlserver/src/sqlserver-dialect.test.ts +109 -0
- package/typescript/dialects/sqlserver/src/sqlserver-dialect.ts +103 -0
- package/typescript/package.json +46 -0
- package/typescript/src/abstractions/migrater.ts +13 -0
- package/typescript/src/abstractions/sql-dialect-base.ts +38 -0
- package/typescript/src/abstractions/sql-dialect-factory.ts +29 -0
- package/typescript/src/abstractions/sql-dialect.ts +18 -0
- package/typescript/src/bin/migrate-create.ts +80 -0
- package/typescript/src/bin/migrate-down.ts +141 -0
- package/typescript/src/bin/migrate-setup.ts +106 -0
- package/typescript/src/bin/migrate-up.ts +111 -0
- package/typescript/src/cli-contract.ts +25 -0
- package/typescript/src/cli-spec.ts +73 -0
- package/typescript/src/cli.ts +52 -0
- package/typescript/src/create-database.test.ts +18 -0
- package/typescript/src/create-database.ts +7 -0
- package/typescript/src/create-sequence.ts +17 -0
- package/typescript/src/datasource-migrate.ts +314 -0
- package/typescript/src/generate-help.test.ts +33 -0
- package/typescript/src/generate-help.ts +173 -0
- package/typescript/src/help.test.ts +48 -0
- package/typescript/src/help.ts +12 -0
- package/typescript/src/index.ts +23 -0
- package/typescript/src/infrastructure/connection-resolver.ts +18 -0
- package/typescript/src/infrastructure/default-factory.test.ts +30 -0
- package/typescript/src/infrastructure/default-factory.ts +41 -0
- package/typescript/src/infrastructure/interop-default.test.ts +9 -0
- package/typescript/src/infrastructure/interop-default.ts +2 -0
- package/typescript/src/infrastructure/message-templates.ts +30 -0
- package/typescript/src/infrastructure/mysql-text-protocol.ts +7 -0
- package/typescript/src/infrastructure/split-on-go.ts +19 -0
- package/typescript/src/infrastructure/sql-templates.ts +10 -0
- package/typescript/src/infrastructure/templates-root.ts +16 -0
- package/typescript/src/init-select.test.ts +34 -0
- package/typescript/src/init-select.ts +77 -0
- package/typescript/src/migrater.ts +92 -0
- package/{dist/migration-client.d.ts → typescript/src/migration-client.ts} +12 -12
- package/typescript/src/path-exists.ts +10 -0
- package/typescript/src/setup-sql.test.ts +16 -0
- package/typescript/src/sql.ts +17 -0
- 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.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/{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/README.md
CHANGED
|
@@ -1 +1,149 @@
|
|
|
1
|
-
|
|
1
|
+
# Migraters
|
|
2
|
+
|
|
3
|
+
Migraters tracks SQL changes during development and applies them upstream as the project evolves. As a codebase grows in complexity and team size, keeping those changes tracked and in sync becomes harder. Migraters is built for that.
|
|
4
|
+
|
|
5
|
+
The typical workflow is:
|
|
6
|
+
|
|
7
|
+
* On development, create one or more migration files, test them, and run migrate up.
|
|
8
|
+
* On deploy, those scripts are copied to production and migrate up is run again, so the upstream database matches development.
|
|
9
|
+
|
|
10
|
+
The same migrate commands and a consistent API are available in multiple programming languages and across many datasource dialects.
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
### Install from npm
|
|
15
|
+
|
|
16
|
+
```shell
|
|
17
|
+
npm install @deterministic-code/migraters
|
|
18
|
+
npx migrate-init --language typescript --dialect sqlite --dialect postgres
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Install skill
|
|
22
|
+
|
|
23
|
+
Agent skill for Claude or Cursor: [skill/SKILL.md](skill/SKILL.md).
|
|
24
|
+
|
|
25
|
+
```shell
|
|
26
|
+
npx skills add https://github.com/deterministic-code/migraters/tree/main/skill -g -a cursor -a claude-code -y --copy
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Skill Prompts
|
|
30
|
+
|
|
31
|
+
Natural-language prompts the [skill](skill/SKILL.md) maps straight to CLI commands:
|
|
32
|
+
|
|
33
|
+
| Prompt | Runs |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| Install migraters for sqlite and postgres | `npm install` → `npx migrate-init --language typescript --dialect sqlite --dialect postgres` |
|
|
36
|
+
| Add driver oracle | `npx migrate-init --language <language>` with prior dialects **plus** `oracle` |
|
|
37
|
+
| Create a new migrate | `npx migrate-create` |
|
|
38
|
+
| migrate up | `npx migrate-up` |
|
|
39
|
+
| migrate down | `npx migrate-down` |
|
|
40
|
+
|
|
41
|
+
`npx migrate-init` replaces the language and dialect set, so “add driver” means re-run init with the same `--language`, the previously enabled dialects, and the new one (for example `npx migrate-init --language typescript --dialect sqlite --dialect postgres --dialect oracle` after a sqlite+postgres install). Flag details are under [Commands](#commands).
|
|
42
|
+
|
|
43
|
+
## Quick example
|
|
44
|
+
|
|
45
|
+
`user.sql`:
|
|
46
|
+
|
|
47
|
+
```sql
|
|
48
|
+
CREATE TABLE users (
|
|
49
|
+
id INTEGER PRIMARY KEY,
|
|
50
|
+
email TEXT NOT NULL
|
|
51
|
+
);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```shell
|
|
55
|
+
npx migrate-init --language typescript --dialect sqlite
|
|
56
|
+
npx migrate-setup --provider sqlite --connection ./app.sqlite
|
|
57
|
+
npx migrate-create --provider sqlite --name add_users
|
|
58
|
+
cat user.sql > sql/sqlite/migrations/0001_add_users_up.sql
|
|
59
|
+
npx migrate-up --provider sqlite --connection ./app.sqlite
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Commands
|
|
63
|
+
|
|
64
|
+
### init
|
|
65
|
+
|
|
66
|
+
Selects the programming language and dialects this tree will compile and install. `migrate-init` is project setup, not an `IMigrater` method, and it does not take `--connection`. `--language` is required (`typescript`, `csharp`, or `rust`). Repeat `--dialect` once per provider (aliases from [`cli.yaml`](cli.yaml) apply: `pg`, `mssql`, `ora`, and the rest). Re-running replaces the previous language and dialect set. `--all` restores every dialect. Init installs that language’s driver dependencies and builds `migrate-setup`, `migrate-up`, `migrate-down`, and `migrate-create`. Later commands dispatch to those binaries.
|
|
67
|
+
|
|
68
|
+
```shell
|
|
69
|
+
npx migrate-init --language typescript --dialect sqlite --dialect postgres
|
|
70
|
+
npx migrate-init --language csharp --dialect sqlite
|
|
71
|
+
npx migrate-init --language rust --dialect sqlite
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
`migrate-init` attaches only the selected dialect packages and builds those binaries. TypeScript installs `@deterministic-code/migraters-<dialect>` (one driver each). C# writes `ProjectReference`s to `Dialects/<Name>/Migrate*.csproj` (each project owns one NuGet driver). Rust still enables Cargo features until its pool is split the same way. A clone does not ship or build the full dialect matrix.
|
|
75
|
+
|
|
76
|
+
### setup
|
|
77
|
+
|
|
78
|
+
Creates the `migrates` and `migrate_logs` tables and the migrations directory. Idempotent.
|
|
79
|
+
|
|
80
|
+
```shell
|
|
81
|
+
npx migrate-setup --provider <sqlite|postgres|mysql|sqlserver|oracle> --connection <url> [--migrations-path <dir>] [--and-up] [--create-database]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`--create-database` creates the database named in `--connection` if it does not exist. `--and-up` runs `migrate-up` immediately after setup. Default migrations directory is `./sql/<dialect>/migrations`.
|
|
85
|
+
|
|
86
|
+
### up
|
|
87
|
+
|
|
88
|
+
Applies every pending migration, each in its own transaction.
|
|
89
|
+
|
|
90
|
+
```shell
|
|
91
|
+
npx migrate-up --provider <…> --connection <url> [--migrations-path <dir>] [--migrations-root <dir>] [--one]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`--migrations-root` looks under `<root>/<dialect>/migrations` and defaults to `sql`. It is ignored when `--migrations-path` is set. `--one` applies only the next pending migration. A whole-line `GO` (sqlcmd-style) splits a file into batches; each batch is executed separately.
|
|
95
|
+
|
|
96
|
+
### down
|
|
97
|
+
|
|
98
|
+
Rolls back the most recently applied migration, one step. Type `confirm` at the prompt, or pass `--confirm`.
|
|
99
|
+
|
|
100
|
+
```shell
|
|
101
|
+
npx migrate-down --provider <…> --connection <url> [--migrations-path <dir>] [--migrations-root <dir>] [--confirm]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### create
|
|
105
|
+
|
|
106
|
+
Writes the next `<NNNN>_<name>_up.sql` and `<NNNN>_<name>_down.sql` pair. The name must match `^[a-z][a-z0-9_]*$`.
|
|
107
|
+
|
|
108
|
+
```shell
|
|
109
|
+
npx migrate-create --provider <…> --name <snake_case_slug> [--migrations-path <dir>]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## API
|
|
113
|
+
|
|
114
|
+
The four `IMigrater` verbs are one contract in every language: argv in [`cli.yaml`](cli.yaml), `IMigrater` in [`api.yaml`](api.yaml). Each language implements that interface. Catalog insert and delete stay inside `up` and `down`. `migrate-init` lives only in [`cli.yaml`](cli.yaml).
|
|
115
|
+
|
|
116
|
+
| Verb | TypeScript [`IMigrater`](typescript/src/abstractions/migrater.ts) | Rust [`IMigrater`](rust/src/migrater.rs) | C# [`IMigrater`](csharp/Abstractions/IMigrater.cs) |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| setup | `setup` | `setup` | `Setup` |
|
|
119
|
+
| up | `up` | `up` | `Up` |
|
|
120
|
+
| down | `down` | `down` | `Down` |
|
|
121
|
+
| create | `create` | `create` | `Create` |
|
|
122
|
+
|
|
123
|
+
## Language support
|
|
124
|
+
|
|
125
|
+
| Datasource | C# | Rust | TypeScript |
|
|
126
|
+
|---|---|---|---|
|
|
127
|
+
| sqlite | yes | yes | yes |
|
|
128
|
+
| postgres | yes | yes | yes |
|
|
129
|
+
| mysql | yes | yes | yes |
|
|
130
|
+
| sqlserver | yes | yes | yes |
|
|
131
|
+
| oracle | yes | yes | yes |
|
|
132
|
+
|
|
133
|
+
## Providers
|
|
134
|
+
|
|
135
|
+
`sqlite`, `postgres`, `mysql`, `sqlserver`, and `oracle`.
|
|
136
|
+
|
|
137
|
+
When `--connection` is omitted, the runner reads the first set environment variable for that dialect:
|
|
138
|
+
|
|
139
|
+
| Provider | Environment variables |
|
|
140
|
+
|---|---|
|
|
141
|
+
| sqlite | `SQLITE_PATH`, `DB_PATH` |
|
|
142
|
+
| postgres | `PG_CONNECTION_STRING`, `DATABASE_URL` |
|
|
143
|
+
| mysql | `MYSQL_URL`, `DATABASE_URL` |
|
|
144
|
+
| sqlserver | `MSSQL_URL`, `DATABASE_URL` |
|
|
145
|
+
| oracle | `ORACLE_CONNECT_STRING`, `DATABASE_URL` |
|
|
146
|
+
|
|
147
|
+
## Specification
|
|
148
|
+
|
|
149
|
+
Shared argv, flags, aliases, exit codes, and command behavior live in [`cli.yaml`](cli.yaml). `IMigrater` (`setup`, `up`, `down`, `create`) lives in [`api.yaml`](api.yaml). `migrate-init` is CLI-only. SQL spelling stays a provider detail.
|
package/bundle.yaml
CHANGED
|
@@ -23,43 +23,38 @@ languages:
|
|
|
23
23
|
dialects:
|
|
24
24
|
sqlite:
|
|
25
25
|
files:
|
|
26
|
-
- typescript/
|
|
26
|
+
- typescript/dialects/sqlite/**
|
|
27
27
|
- shared/templates/sql/sqlite/**
|
|
28
28
|
apk: sqlite
|
|
29
29
|
packages:
|
|
30
30
|
- name: better-sqlite3
|
|
31
|
-
version: "^13.0.3"
|
|
32
31
|
installScripts: true
|
|
33
32
|
postgres:
|
|
34
33
|
files:
|
|
35
|
-
- typescript/
|
|
34
|
+
- typescript/dialects/postgres/**
|
|
36
35
|
- shared/templates/sql/postgres/**
|
|
37
36
|
apk: postgresql-client
|
|
38
37
|
packages:
|
|
39
38
|
- name: pg
|
|
40
|
-
version: "^8.13.0"
|
|
41
39
|
mysql:
|
|
42
40
|
files:
|
|
43
|
-
- typescript/
|
|
41
|
+
- typescript/dialects/mysql/**
|
|
44
42
|
- shared/templates/sql/mysql/**
|
|
45
43
|
apk: mysql-client
|
|
46
44
|
packages:
|
|
47
45
|
- name: mysql2
|
|
48
|
-
version: "^3.22.2"
|
|
49
46
|
sqlserver:
|
|
50
47
|
files:
|
|
51
|
-
- typescript/
|
|
48
|
+
- typescript/dialects/sqlserver/**
|
|
52
49
|
- shared/templates/sql/sqlserver/**
|
|
53
50
|
packages:
|
|
54
51
|
- name: mssql
|
|
55
|
-
version: "^12.5.0"
|
|
56
52
|
oracle:
|
|
57
53
|
files:
|
|
58
|
-
- typescript/
|
|
54
|
+
- typescript/dialects/oracle/**
|
|
59
55
|
- shared/templates/sql/oracle/**
|
|
60
56
|
packages:
|
|
61
57
|
- name: oracledb
|
|
62
|
-
version: "^6.10.0"
|
|
63
58
|
commands:
|
|
64
59
|
setup: migrate-setup --provider {{provider}}
|
|
65
60
|
up: migrate-up --provider {{provider}} --migrate-path {{migrationsPath}}
|
|
@@ -100,6 +95,7 @@ languages:
|
|
|
100
95
|
- rust/Cargo.toml
|
|
101
96
|
- rust/rustfmt.toml
|
|
102
97
|
- rust/src/**/*.rs
|
|
98
|
+
- rust/api/**
|
|
103
99
|
- rust/init/**
|
|
104
100
|
- shared/templates/help/**
|
|
105
101
|
- shared/templates/messages/**
|
|
@@ -108,32 +104,27 @@ languages:
|
|
|
108
104
|
dialects:
|
|
109
105
|
sqlite:
|
|
110
106
|
files:
|
|
111
|
-
- rust/
|
|
107
|
+
- rust/dialects/sqlite/**
|
|
112
108
|
- shared/templates/sql/sqlite/**
|
|
113
109
|
apk: sqlite
|
|
114
|
-
feature: sqlite
|
|
115
110
|
postgres:
|
|
116
111
|
files:
|
|
117
|
-
- rust/
|
|
112
|
+
- rust/dialects/postgres/**
|
|
118
113
|
- shared/templates/sql/postgres/**
|
|
119
114
|
apk: postgresql-client
|
|
120
|
-
feature: postgres
|
|
121
115
|
mysql:
|
|
122
116
|
files:
|
|
123
|
-
- rust/
|
|
117
|
+
- rust/dialects/mysql/**
|
|
124
118
|
- shared/templates/sql/mysql/**
|
|
125
119
|
apk: mysql-client
|
|
126
|
-
feature: mysql
|
|
127
120
|
sqlserver:
|
|
128
121
|
files:
|
|
129
|
-
- rust/
|
|
122
|
+
- rust/dialects/sqlserver/**
|
|
130
123
|
- shared/templates/sql/sqlserver/**
|
|
131
|
-
feature: sqlserver
|
|
132
124
|
oracle:
|
|
133
125
|
files:
|
|
134
|
-
- rust/
|
|
126
|
+
- rust/dialects/oracle/**
|
|
135
127
|
- shared/templates/sql/oracle/**
|
|
136
|
-
feature: oracle
|
|
137
128
|
commands:
|
|
138
129
|
setup: migrate-setup --provider {{provider}}
|
|
139
130
|
up: migrate-up --provider {{provider}} --migrate-path {{migrationsPath}}
|
|
@@ -176,6 +167,7 @@ languages:
|
|
|
176
167
|
common:
|
|
177
168
|
- csharp/**/*.cs
|
|
178
169
|
- csharp/MigrateRunner.csproj
|
|
170
|
+
- csharp/MigrateRunner.Core.csproj
|
|
179
171
|
- csharp/MigrateInit/MigrateInit.csproj
|
|
180
172
|
- csharp/GlobalUsings.cs
|
|
181
173
|
- csharp/.csharpierrc.json
|
|
@@ -191,7 +183,7 @@ languages:
|
|
|
191
183
|
dialects:
|
|
192
184
|
sqlite:
|
|
193
185
|
files:
|
|
194
|
-
- csharp/Dialects/
|
|
186
|
+
- csharp/Dialects/Sqlite/**
|
|
195
187
|
- shared/templates/sql/sqlite/**
|
|
196
188
|
apk: sqlite
|
|
197
189
|
packages:
|
|
@@ -199,15 +191,15 @@ languages:
|
|
|
199
191
|
version: "9.0.0"
|
|
200
192
|
postgres:
|
|
201
193
|
files:
|
|
202
|
-
- csharp/Dialects/
|
|
194
|
+
- csharp/Dialects/Postgres/**
|
|
203
195
|
- shared/templates/sql/postgres/**
|
|
204
196
|
apk: postgresql-client
|
|
205
197
|
packages:
|
|
206
198
|
- name: Npgsql
|
|
207
|
-
version: "9.0.
|
|
199
|
+
version: "9.0.2"
|
|
208
200
|
mysql:
|
|
209
201
|
files:
|
|
210
|
-
- csharp/Dialects/
|
|
202
|
+
- csharp/Dialects/Mysql/**
|
|
211
203
|
- shared/templates/sql/mysql/**
|
|
212
204
|
apk: mysql-client
|
|
213
205
|
packages:
|
|
@@ -215,18 +207,18 @@ languages:
|
|
|
215
207
|
version: "2.4.0"
|
|
216
208
|
sqlserver:
|
|
217
209
|
files:
|
|
218
|
-
- csharp/Dialects/
|
|
210
|
+
- csharp/Dialects/SqlServer/**
|
|
219
211
|
- shared/templates/sql/sqlserver/**
|
|
220
212
|
packages:
|
|
221
213
|
- name: Microsoft.Data.SqlClient
|
|
222
|
-
version: "6.0.
|
|
214
|
+
version: "6.0.2"
|
|
223
215
|
oracle:
|
|
224
216
|
files:
|
|
225
|
-
- csharp/Dialects/
|
|
217
|
+
- csharp/Dialects/Oracle/**
|
|
226
218
|
- shared/templates/sql/oracle/**
|
|
227
219
|
packages:
|
|
228
220
|
- name: Oracle.ManagedDataAccess.Core
|
|
229
|
-
version: "23.
|
|
221
|
+
version: "23.9.1"
|
|
230
222
|
commands:
|
|
231
223
|
setup: migrate-setup --provider {{provider}}
|
|
232
224
|
up: migrate-up --provider {{provider}} --migrate-path {{migrationsPath}}
|
package/cli.yaml
CHANGED
|
@@ -14,6 +14,11 @@ providers:
|
|
|
14
14
|
- sqlserver
|
|
15
15
|
- oracle
|
|
16
16
|
|
|
17
|
+
languages:
|
|
18
|
+
- typescript
|
|
19
|
+
- csharp
|
|
20
|
+
- rust
|
|
21
|
+
|
|
17
22
|
# Lookup: lowercase, strip spaces/underscores/hyphens, then match a provider or alias.
|
|
18
23
|
provider_aliases:
|
|
19
24
|
sqlite3: sqlite
|
|
@@ -69,14 +74,19 @@ connection_environment:
|
|
|
69
74
|
commands:
|
|
70
75
|
- verb: init
|
|
71
76
|
summary: |
|
|
72
|
-
Selects the dialects this tree will compile and
|
|
73
|
-
|
|
77
|
+
Selects the programming language and dialects this tree will compile and
|
|
78
|
+
install. --language is required. Repeat --dialect once per provider.
|
|
79
|
+
Re-running replaces the previous language and dialect set. --all restores
|
|
74
80
|
every dialect. Does not take --connection.
|
|
75
81
|
examples: |
|
|
76
|
-
{{command}} --dialect sqlite --dialect postgres
|
|
77
|
-
{{command}} --dialect
|
|
78
|
-
{{command}} --all
|
|
82
|
+
{{command}} --language typescript --dialect sqlite --dialect postgres
|
|
83
|
+
{{command}} --language csharp --dialect sqlite
|
|
84
|
+
{{command}} --language rust --all
|
|
79
85
|
args:
|
|
86
|
+
- flag: --language
|
|
87
|
+
placeholder: languages
|
|
88
|
+
required: true
|
|
89
|
+
help: "Programming language runner to install and build. typescript, csharp, or rust."
|
|
80
90
|
- flag: --dialect
|
|
81
91
|
placeholder: providers
|
|
82
92
|
required: false
|
|
@@ -92,6 +102,9 @@ commands:
|
|
|
92
102
|
and the migrations directory (mkdir -p). Idempotent — re-running against an
|
|
93
103
|
already-setup database is a no-op. For sqlite, also mkdir -p of the parent
|
|
94
104
|
directory of --connection so a fresh-tree path like ./.test/foo.sqlite works.
|
|
105
|
+
Pass --create-database to create the database named in --connection if it
|
|
106
|
+
does not exist (postgres, mysql, sqlserver). sqlite creates the file on
|
|
107
|
+
connect. oracle uses the existing service.
|
|
95
108
|
examples: |
|
|
96
109
|
# sqlite — bare path or sqlite:// URL; both create a file on disk.
|
|
97
110
|
{{command}} --provider sqlite --connection ./app.sqlite
|
|
@@ -130,6 +143,9 @@ commands:
|
|
|
130
143
|
- flag: --and-up
|
|
131
144
|
required: false
|
|
132
145
|
help: "After setup, immediately invoke migrate-up so the chain is applied in one step."
|
|
146
|
+
- flag: --create-database
|
|
147
|
+
required: false
|
|
148
|
+
help: "Create the database named in --connection if it does not exist."
|
|
133
149
|
|
|
134
150
|
- verb: up
|
|
135
151
|
show_connection_env: true
|
|
@@ -186,9 +202,8 @@ commands:
|
|
|
186
202
|
- verb: down
|
|
187
203
|
show_connection_env: true
|
|
188
204
|
summary: |
|
|
189
|
-
Rolls back the MOST RECENTLY applied migration (one step). DESTRUCTIVE:
|
|
190
|
-
|
|
191
|
-
operator types it back on stdin (or passes --confirm <TOKEN> matching it).
|
|
205
|
+
Rolls back the MOST RECENTLY applied migration (one step). DESTRUCTIVE: refuses
|
|
206
|
+
to proceed unless the operator types confirm on stdin, or passes --confirm.
|
|
192
207
|
examples: |
|
|
193
208
|
# sqlite — bare path or sqlite:// URL.
|
|
194
209
|
{{command}} --provider sqlite --connection ./app.sqlite
|
|
@@ -230,11 +245,8 @@ commands:
|
|
|
230
245
|
Root prefix; the script then looks at <migrations-root>/<dialect>/migrations.
|
|
231
246
|
Defaults to 'sql'. Ignored when --migrations-path is also set.
|
|
232
247
|
- flag: --confirm
|
|
233
|
-
placeholder: TOKEN
|
|
234
248
|
required: false
|
|
235
|
-
help:
|
|
236
|
-
Skip the interactive prompt. The TOKEN must match the value
|
|
237
|
-
printed on stderr at runtime — there is no fixed bypass value.
|
|
249
|
+
help: Skip the interactive prompt.
|
|
238
250
|
|
|
239
251
|
- verb: create
|
|
240
252
|
summary: |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal sealed record SetupArg(string Connection, string MigrationsPath);
|
|
4
|
+
|
|
5
|
+
internal sealed record UpArg(string Connection, string MigrationsPath, bool One = false);
|
|
6
|
+
|
|
7
|
+
internal sealed record DownArg(string Connection, string MigrationsPath);
|
|
8
|
+
|
|
9
|
+
internal sealed record CreateArg(string Name, string MigrationsPath);
|
|
10
|
+
|
|
11
|
+
internal sealed record CreateResponse(string UpName, string DownName);
|
|
12
|
+
|
|
13
|
+
internal interface IMigrater
|
|
14
|
+
{
|
|
15
|
+
string Name { get; }
|
|
16
|
+
Task Setup(SetupArg args);
|
|
17
|
+
Task<IReadOnlyList<string>> Up(UpArg args);
|
|
18
|
+
Task<string?> Down(DownArg args);
|
|
19
|
+
Task<CreateResponse> Create(CreateArg args);
|
|
20
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
public interface ISqlDialect
|
|
4
|
+
{
|
|
5
|
+
string Name { get; }
|
|
6
|
+
IReadOnlyList<string> ConnectionEnvironmentVariables { get; }
|
|
7
|
+
string MigratesDdl { get; }
|
|
8
|
+
string MigrateLogsDdl { get; }
|
|
9
|
+
string SelectAppliedChecksumSql { get; }
|
|
10
|
+
string InsertAppliedSql { get; }
|
|
11
|
+
string DeleteAppliedSql { get; }
|
|
12
|
+
bool UseTransaction { get; }
|
|
13
|
+
string NowExpr { get; }
|
|
14
|
+
string LimitClause(int n);
|
|
15
|
+
string QuoteIdent(string ident);
|
|
16
|
+
string Placeholder(string name);
|
|
17
|
+
string NormalizeConnectionString(string connection);
|
|
18
|
+
DbConnection CreateConnection(string connectionString);
|
|
19
|
+
string? PrerequisiteError(string connection);
|
|
20
|
+
void PrepareSetup(string connection);
|
|
21
|
+
void AddParameter(DbCommand command, string name, object value);
|
|
22
|
+
Task CreateDatabaseIfMissingAsync(string connection);
|
|
23
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
public sealed class SqlDialect : ISqlDialect
|
|
4
|
+
{
|
|
5
|
+
private readonly Func<string, string> _normalize;
|
|
6
|
+
private readonly Func<string, DbConnection> _createConnection;
|
|
7
|
+
private readonly Action<DbCommand, string, object> _addParameter;
|
|
8
|
+
private readonly Func<string, string> _quoteIdent;
|
|
9
|
+
private readonly Func<string, string> _placeholder;
|
|
10
|
+
private readonly Func<string, string?>? _prerequisiteError;
|
|
11
|
+
private readonly Action<string>? _prepareSetup;
|
|
12
|
+
private readonly Func<string, Task>? _createDatabase;
|
|
13
|
+
private readonly Func<int, string> _limitClause;
|
|
14
|
+
|
|
15
|
+
public SqlDialect(
|
|
16
|
+
string name,
|
|
17
|
+
IReadOnlyList<string> connectionEnvironmentVariables,
|
|
18
|
+
bool useTransaction,
|
|
19
|
+
Func<string, string> normalizeConnectionString,
|
|
20
|
+
Func<string, DbConnection> createConnection,
|
|
21
|
+
Action<DbCommand, string, object> addParameter,
|
|
22
|
+
Func<string, string> quoteIdent,
|
|
23
|
+
Func<string, string> placeholder,
|
|
24
|
+
Func<string, string?>? prerequisiteError = null,
|
|
25
|
+
Action<string>? prepareSetup = null,
|
|
26
|
+
Func<string, Task>? createDatabase = null,
|
|
27
|
+
string nowExpr = "CURRENT_TIMESTAMP",
|
|
28
|
+
Func<int, string>? limitClause = null
|
|
29
|
+
)
|
|
30
|
+
{
|
|
31
|
+
Name = name;
|
|
32
|
+
ConnectionEnvironmentVariables = connectionEnvironmentVariables;
|
|
33
|
+
UseTransaction = useTransaction;
|
|
34
|
+
NowExpr = nowExpr;
|
|
35
|
+
_normalize = normalizeConnectionString;
|
|
36
|
+
_createConnection = createConnection;
|
|
37
|
+
_addParameter = addParameter;
|
|
38
|
+
_quoteIdent = quoteIdent;
|
|
39
|
+
_placeholder = placeholder;
|
|
40
|
+
_prerequisiteError = prerequisiteError;
|
|
41
|
+
_prepareSetup = prepareSetup;
|
|
42
|
+
_createDatabase = createDatabase;
|
|
43
|
+
_limitClause = limitClause ?? (n => $"LIMIT {n}");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public string Name { get; }
|
|
47
|
+
public IReadOnlyList<string> ConnectionEnvironmentVariables { get; }
|
|
48
|
+
public bool UseTransaction { get; }
|
|
49
|
+
public string NowExpr { get; }
|
|
50
|
+
public string MigratesDdl => SqlTemplates.Read(Name, "migrates");
|
|
51
|
+
public string MigrateLogsDdl => SqlTemplates.Read(Name, "migrate_logs");
|
|
52
|
+
public string SelectAppliedChecksumSql =>
|
|
53
|
+
$"SELECT {_quoteIdent("name")} AS name, {_quoteIdent("checksum")} AS checksum FROM {_quoteIdent("migrates")}";
|
|
54
|
+
public string InsertAppliedSql =>
|
|
55
|
+
$"INSERT INTO {_quoteIdent("migrates")} ({_quoteIdent("name")}, {_quoteIdent("checksum")}) VALUES ({_placeholder("p1")}, {_placeholder("p2")})";
|
|
56
|
+
public string DeleteAppliedSql =>
|
|
57
|
+
$"DELETE FROM {_quoteIdent("migrates")} WHERE {_quoteIdent("name")} = {_placeholder("p1")}";
|
|
58
|
+
|
|
59
|
+
public string LimitClause(int n) => _limitClause(n);
|
|
60
|
+
public string QuoteIdent(string ident) => _quoteIdent(ident);
|
|
61
|
+
public string Placeholder(string name) => _placeholder(name);
|
|
62
|
+
public string NormalizeConnectionString(string connection) => _normalize(connection);
|
|
63
|
+
public DbConnection CreateConnection(string connectionString) => _createConnection(connectionString);
|
|
64
|
+
public void AddParameter(DbCommand command, string name, object value) =>
|
|
65
|
+
_addParameter(command, name, value);
|
|
66
|
+
public string? PrerequisiteError(string connection) => _prerequisiteError?.Invoke(connection);
|
|
67
|
+
public void PrepareSetup(string connection) => _prepareSetup?.Invoke(connection);
|
|
68
|
+
public Task CreateDatabaseIfMissingAsync(string connection) =>
|
|
69
|
+
_createDatabase?.Invoke(connection) ?? Task.CompletedTask;
|
|
70
|
+
|
|
71
|
+
public static void Bind(DbCommand command, string parameterName, object value)
|
|
72
|
+
{
|
|
73
|
+
var p = command.CreateParameter();
|
|
74
|
+
p.ParameterName = parameterName;
|
|
75
|
+
p.Value = value;
|
|
76
|
+
command.Parameters.Add(p);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
namespace Deterministic.MigrateRunner;
|
|
2
|
+
|
|
3
|
+
internal sealed class SqlDialectFactory(IEnumerable<ISqlDialect> dialects) : ISqlDialectFactory
|
|
4
|
+
{
|
|
5
|
+
private readonly ISqlDialect[] _all =
|
|
6
|
+
[
|
|
7
|
+
.. CliSpec.Providers.Select(name => dialects.FirstOrDefault(d => d.Name == name)).OfType<ISqlDialect>(),
|
|
8
|
+
];
|
|
9
|
+
private readonly IReadOnlyDictionary<string, ISqlDialect> _byName = dialects.ToDictionary(
|
|
10
|
+
d => d.Name,
|
|
11
|
+
StringComparer.Ordinal
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
public IReadOnlyList<ISqlDialect> All() => _all;
|
|
15
|
+
|
|
16
|
+
public bool TryGet(string name, out ISqlDialect dialect)
|
|
17
|
+
{
|
|
18
|
+
var key = MigrateCli.NormalizeProvider(name);
|
|
19
|
+
if (key is not null && _byName.TryGetValue(key, out dialect!))
|
|
20
|
+
return true;
|
|
21
|
+
dialect = null!;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
<PropertyGroup>
|
|
3
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
4
|
+
<Nullable>enable</Nullable>
|
|
5
|
+
<ImplicitUsings>enable</ImplicitUsings>
|
|
6
|
+
<RootNamespace>Deterministic.MigrateRunner</RootNamespace>
|
|
7
|
+
<AssemblyName>MigrateMysql</AssemblyName>
|
|
8
|
+
<IsPackable>false</IsPackable>
|
|
9
|
+
</PropertyGroup>
|
|
10
|
+
<ItemGroup>
|
|
11
|
+
<ProjectReference Include="..\..\MigrateRunner.Core.csproj" />
|
|
12
|
+
<PackageReference Include="MySqlConnector" Version="2.4.0" />
|
|
13
|
+
</ItemGroup>
|
|
14
|
+
</Project>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
using MySqlConnector;
|
|
2
|
+
|
|
3
|
+
namespace Deterministic.MigrateRunner;
|
|
4
|
+
|
|
5
|
+
internal static class MysqlCreateDatabase
|
|
6
|
+
{
|
|
7
|
+
public static async Task IfMissingAsync(string connection)
|
|
8
|
+
{
|
|
9
|
+
var normalized = MysqlDialect.Instance.NormalizeConnectionString(connection);
|
|
10
|
+
var b = new MySqlConnectionStringBuilder(normalized);
|
|
11
|
+
if (string.IsNullOrEmpty(b.Database))
|
|
12
|
+
return;
|
|
13
|
+
var name = b.Database;
|
|
14
|
+
b.Database = "";
|
|
15
|
+
await using var conn = new MySqlConnection(b.ConnectionString);
|
|
16
|
+
await conn.OpenAsync().ConfigureAwait(false);
|
|
17
|
+
await using var cmd = conn.CreateCommand();
|
|
18
|
+
cmd.CommandText = $"CREATE DATABASE IF NOT EXISTS `{name.Replace("`", "``")}`";
|
|
19
|
+
await cmd.ExecuteNonQueryAsync().ConfigureAwait(false);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
using MySqlConnector;
|
|
2
|
+
|
|
3
|
+
namespace Deterministic.MigrateRunner;
|
|
4
|
+
|
|
5
|
+
public static class MysqlDialect
|
|
6
|
+
{
|
|
7
|
+
// MySQL DDL auto-commits, so wrapping apply + catalog write gives no atomicity.
|
|
8
|
+
public static readonly ISqlDialect Instance = new SqlDialect(
|
|
9
|
+
"mysql",
|
|
10
|
+
["MYSQL_URL", "DATABASE_URL"],
|
|
11
|
+
useTransaction: false,
|
|
12
|
+
NormalizeConnection,
|
|
13
|
+
s => new MySqlConnection(s),
|
|
14
|
+
(cmd, n, v) => SqlDialect.Bind(cmd, $"@{n}", v),
|
|
15
|
+
ident => $"`{ident}`",
|
|
16
|
+
name => $"@{name}",
|
|
17
|
+
createDatabase: MysqlCreateDatabase.IfMissingAsync
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
private static string NormalizeConnection(string connection)
|
|
21
|
+
{
|
|
22
|
+
if (ConnectionStringUrl.TryUri(connection, "mysql") is not { } url)
|
|
23
|
+
return connection;
|
|
24
|
+
var uri = new Uri(url);
|
|
25
|
+
var b = new MySqlConnectionStringBuilder
|
|
26
|
+
{
|
|
27
|
+
Server = uri.Host,
|
|
28
|
+
Port = (uint)(uri.Port > 0 ? uri.Port : 3306),
|
|
29
|
+
};
|
|
30
|
+
ConnectionStringUrl.ApplyUriParts(
|
|
31
|
+
uri,
|
|
32
|
+
(u, p) =>
|
|
33
|
+
{
|
|
34
|
+
if (u is not null)
|
|
35
|
+
b.UserID = u;
|
|
36
|
+
if (p is not null)
|
|
37
|
+
b.Password = p;
|
|
38
|
+
},
|
|
39
|
+
db => b.Database = db,
|
|
40
|
+
(k, v) => b[k] = v
|
|
41
|
+
);
|
|
42
|
+
return b.ConnectionString;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
Binary file
|
|
Binary file
|