@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.
Files changed (649) hide show
  1. package/README.md +149 -0
  2. package/bundle.yaml +20 -28
  3. package/cli.yaml +276 -0
  4. package/csharp/Abstractions/IConnectionResolver.cs +6 -0
  5. package/csharp/Abstractions/IMigrateCommand.cs +7 -0
  6. package/csharp/Abstractions/IMigrater.cs +20 -0
  7. package/csharp/Abstractions/ISqlDialect.cs +23 -0
  8. package/csharp/Abstractions/ISqlDialectFactory.cs +7 -0
  9. package/csharp/Abstractions/SqlDialect.cs +78 -0
  10. package/csharp/Abstractions/SqlDialectFactory.cs +24 -0
  11. package/csharp/Dialects/Mysql/MigrateMysql.csproj +14 -0
  12. package/csharp/Dialects/Mysql/MysqlCreateDatabase.cs +21 -0
  13. package/csharp/Dialects/Mysql/MysqlDialect.cs +44 -0
  14. package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateCore.dll +0 -0
  15. package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateCore.pdb +0 -0
  16. package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateMysql.deps.json +213 -0
  17. package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateMysql.dll +0 -0
  18. package/csharp/Dialects/Mysql/bin/Debug/net9.0/MigrateMysql.pdb +0 -0
  19. package/csharp/Dialects/Mysql/bin/Debug/net9.0/cli.yaml +276 -0
  20. package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/down.txt +3 -5
  21. package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/help/init.txt +15 -0
  22. package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/setup.txt +4 -0
  23. package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
  24. package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
  25. package/csharp/Dialects/Mysql/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
  26. package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/down/destructive-header.txt +0 -1
  27. package/csharp/Dialects/Mysql/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  28. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateM.E580FE7A.Up2Date +0 -0
  29. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.AssemblyInfo.cs +22 -0
  30. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.AssemblyInfoInputs.cache +1 -0
  31. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.GeneratedMSBuildEditorConfig.editorconfig +18 -0
  32. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.GlobalUsings.g.cs +8 -0
  33. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.assets.cache +0 -0
  34. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.csproj.AssemblyReference.cache +0 -0
  35. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.csproj.CoreCompileInputs.cache +1 -0
  36. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.csproj.FileListAbsolute.txt +63 -0
  37. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.dll +0 -0
  38. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.pdb +0 -0
  39. package/csharp/Dialects/Mysql/obj/Debug/net9.0/MigrateMysql.sourcelink.json +1 -0
  40. package/csharp/Dialects/Mysql/obj/Debug/net9.0/ref/MigrateMysql.dll +0 -0
  41. package/csharp/Dialects/Mysql/obj/Debug/net9.0/refint/MigrateMysql.dll +0 -0
  42. package/csharp/Dialects/Mysql/obj/MigrateMysql.csproj.nuget.dgspec.json +172 -0
  43. package/csharp/Dialects/Mysql/obj/MigrateMysql.csproj.nuget.g.props +15 -0
  44. package/csharp/Dialects/Mysql/obj/MigrateMysql.csproj.nuget.g.targets +6 -0
  45. package/csharp/Dialects/Mysql/obj/project.assets.json +5081 -0
  46. package/csharp/Dialects/Mysql/obj/project.nuget.cache +94 -0
  47. package/csharp/Dialects/Oracle/MigrateOracle.csproj +14 -0
  48. package/csharp/Dialects/Oracle/OracleDialect.cs +30 -0
  49. package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateCore.dll +0 -0
  50. package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateCore.pdb +0 -0
  51. package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateOracle.deps.json +343 -0
  52. package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateOracle.dll +0 -0
  53. package/csharp/Dialects/Oracle/bin/Debug/net9.0/MigrateOracle.pdb +0 -0
  54. package/csharp/Dialects/Oracle/bin/Debug/net9.0/cli.yaml +276 -0
  55. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/create.txt +16 -0
  56. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/down.txt +40 -0
  57. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/init.txt +15 -0
  58. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/setup.txt +45 -0
  59. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/help/up.txt +43 -0
  60. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
  61. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
  62. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
  63. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
  64. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
  65. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
  66. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
  67. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
  68. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
  69. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
  70. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
  71. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
  72. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
  73. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
  74. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
  75. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
  76. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
  77. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
  78. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
  79. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
  80. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
  81. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
  82. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
  83. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
  84. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
  85. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
  86. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
  87. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
  88. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
  89. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
  90. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
  91. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
  92. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
  93. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
  94. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
  95. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
  96. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
  97. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
  98. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
  99. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
  100. package/csharp/Dialects/Oracle/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
  101. package/csharp/Dialects/Oracle/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  102. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateO.BD46121C.Up2Date +0 -0
  103. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.AssemblyInfo.cs +22 -0
  104. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.AssemblyInfoInputs.cache +1 -0
  105. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.GeneratedMSBuildEditorConfig.editorconfig +18 -0
  106. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.GlobalUsings.g.cs +8 -0
  107. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.assets.cache +0 -0
  108. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.csproj.AssemblyReference.cache +0 -0
  109. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.csproj.CoreCompileInputs.cache +1 -0
  110. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.csproj.FileListAbsolute.txt +63 -0
  111. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.dll +0 -0
  112. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.pdb +0 -0
  113. package/csharp/Dialects/Oracle/obj/Debug/net9.0/MigrateOracle.sourcelink.json +1 -0
  114. package/csharp/Dialects/Oracle/obj/Debug/net9.0/ref/MigrateOracle.dll +0 -0
  115. package/csharp/Dialects/Oracle/obj/Debug/net9.0/refint/MigrateOracle.dll +0 -0
  116. package/csharp/Dialects/Oracle/obj/MigrateOracle.csproj.nuget.dgspec.json +172 -0
  117. package/csharp/Dialects/Oracle/obj/MigrateOracle.csproj.nuget.g.props +15 -0
  118. package/csharp/Dialects/Oracle/obj/MigrateOracle.csproj.nuget.g.targets +2 -0
  119. package/csharp/Dialects/Oracle/obj/project.assets.json +5414 -0
  120. package/csharp/Dialects/Oracle/obj/project.nuget.cache +101 -0
  121. package/csharp/Dialects/Postgres/MigratePostgres.csproj +14 -0
  122. package/csharp/Dialects/Postgres/PostgresCreateDatabase.cs +31 -0
  123. package/csharp/Dialects/Postgres/PostgresDialect.cs +43 -0
  124. package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigrateCore.dll +0 -0
  125. package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigrateCore.pdb +0 -0
  126. package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigratePostgres.deps.json +212 -0
  127. package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigratePostgres.dll +0 -0
  128. package/csharp/Dialects/Postgres/bin/Debug/net9.0/MigratePostgres.pdb +0 -0
  129. package/csharp/Dialects/Postgres/bin/Debug/net9.0/cli.yaml +276 -0
  130. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/create.txt +16 -0
  131. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/down.txt +40 -0
  132. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/init.txt +15 -0
  133. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/setup.txt +45 -0
  134. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/help/up.txt +43 -0
  135. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
  136. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
  137. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
  138. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
  139. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
  140. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
  141. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
  142. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
  143. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
  144. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
  145. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
  146. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
  147. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
  148. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
  149. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
  150. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
  151. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
  152. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
  153. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
  154. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
  155. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
  156. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
  157. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
  158. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
  159. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
  160. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
  161. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
  162. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
  163. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
  164. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
  165. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
  166. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
  167. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
  168. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
  169. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
  170. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
  171. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
  172. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
  173. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
  174. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
  175. package/csharp/Dialects/Postgres/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
  176. package/csharp/Dialects/Postgres/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  177. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigrateP.DF842641.Up2Date +0 -0
  178. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.AssemblyInfo.cs +22 -0
  179. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.AssemblyInfoInputs.cache +1 -0
  180. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.GeneratedMSBuildEditorConfig.editorconfig +18 -0
  181. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.GlobalUsings.g.cs +8 -0
  182. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.assets.cache +0 -0
  183. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.csproj.AssemblyReference.cache +0 -0
  184. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.csproj.CoreCompileInputs.cache +1 -0
  185. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.csproj.FileListAbsolute.txt +63 -0
  186. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.dll +0 -0
  187. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.pdb +0 -0
  188. package/csharp/Dialects/Postgres/obj/Debug/net9.0/MigratePostgres.sourcelink.json +1 -0
  189. package/csharp/Dialects/Postgres/obj/Debug/net9.0/ref/MigratePostgres.dll +0 -0
  190. package/csharp/Dialects/Postgres/obj/Debug/net9.0/refint/MigratePostgres.dll +0 -0
  191. package/csharp/Dialects/Postgres/obj/MigratePostgres.csproj.nuget.dgspec.json +172 -0
  192. package/csharp/Dialects/Postgres/obj/MigratePostgres.csproj.nuget.g.props +15 -0
  193. package/csharp/Dialects/Postgres/obj/MigratePostgres.csproj.nuget.g.targets +6 -0
  194. package/csharp/Dialects/Postgres/obj/project.assets.json +5068 -0
  195. package/csharp/Dialects/Postgres/obj/project.nuget.cache +94 -0
  196. package/csharp/Dialects/SqlServer/MigrateSqlServer.csproj +14 -0
  197. package/csharp/Dialects/SqlServer/SqlServerCreateDatabase.cs +21 -0
  198. package/csharp/Dialects/SqlServer/SqlServerDialect.cs +21 -0
  199. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateCore.dll +0 -0
  200. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateCore.pdb +0 -0
  201. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateSqlServer.deps.json +727 -0
  202. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateSqlServer.dll +0 -0
  203. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/MigrateSqlServer.pdb +0 -0
  204. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/cli.yaml +276 -0
  205. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/create.txt +16 -0
  206. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/down.txt +40 -0
  207. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/init.txt +15 -0
  208. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/setup.txt +45 -0
  209. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/help/up.txt +43 -0
  210. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
  211. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
  212. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
  213. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
  214. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
  215. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
  216. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
  217. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
  218. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
  219. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
  220. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
  221. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
  222. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
  223. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
  224. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
  225. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
  226. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
  227. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
  228. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
  229. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
  230. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
  231. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
  232. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
  233. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
  234. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
  235. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
  236. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
  237. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
  238. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
  239. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
  240. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
  241. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
  242. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
  243. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
  244. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
  245. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
  246. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
  247. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
  248. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
  249. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
  250. package/csharp/Dialects/SqlServer/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
  251. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  252. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateS.6604771C.Up2Date +0 -0
  253. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.AssemblyInfo.cs +22 -0
  254. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.AssemblyInfoInputs.cache +1 -0
  255. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.GeneratedMSBuildEditorConfig.editorconfig +18 -0
  256. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.GlobalUsings.g.cs +8 -0
  257. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.assets.cache +0 -0
  258. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.csproj.AssemblyReference.cache +0 -0
  259. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.csproj.CoreCompileInputs.cache +1 -0
  260. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.csproj.FileListAbsolute.txt +63 -0
  261. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.dll +0 -0
  262. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.pdb +0 -0
  263. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/MigrateSqlServer.sourcelink.json +1 -0
  264. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/ref/MigrateSqlServer.dll +0 -0
  265. package/csharp/Dialects/SqlServer/obj/Debug/net9.0/refint/MigrateSqlServer.dll +0 -0
  266. package/csharp/Dialects/SqlServer/obj/MigrateSqlServer.csproj.nuget.dgspec.json +172 -0
  267. package/csharp/Dialects/SqlServer/obj/MigrateSqlServer.csproj.nuget.g.props +15 -0
  268. package/csharp/Dialects/SqlServer/obj/MigrateSqlServer.csproj.nuget.g.targets +7 -0
  269. package/csharp/Dialects/SqlServer/obj/project.assets.json +6391 -0
  270. package/csharp/Dialects/SqlServer/obj/project.nuget.cache +122 -0
  271. package/csharp/Dialects/Sqlite/MigrateSqlite.csproj +14 -0
  272. package/csharp/Dialects/Sqlite/SqliteDialect.cs +77 -0
  273. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateCore.dll +0 -0
  274. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateCore.pdb +0 -0
  275. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateSqlite.deps.json +376 -0
  276. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateSqlite.dll +0 -0
  277. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/MigrateSqlite.pdb +0 -0
  278. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/cli.yaml +276 -0
  279. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/create.txt +16 -0
  280. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/down.txt +40 -0
  281. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/init.txt +15 -0
  282. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/setup.txt +45 -0
  283. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/help/up.txt +43 -0
  284. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/checksum-drift-line.txt +1 -0
  285. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/checksum-drift.txt +11 -0
  286. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-mismatch.txt +1 -0
  287. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-prompt.txt +1 -0
  288. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-stdin-failed.txt +1 -0
  289. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-token-mismatch.txt +1 -0
  290. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/confirm-tty-required.txt +1 -0
  291. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/down/destructive-header.txt +2 -0
  292. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/invalid-name.txt +1 -0
  293. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/migrate-path-not-dir.txt +1 -0
  294. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-connection.txt +1 -0
  295. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-name-hint.txt +1 -0
  296. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-name.txt +1 -0
  297. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-provider-hint.txt +1 -0
  298. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-provider.txt +1 -0
  299. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/missing-value-for-flag.txt +1 -0
  300. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
  301. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
  302. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/rollback-not-in-path.txt +1 -0
  303. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/sqlite-prerequisite.txt +1 -0
  304. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/unknown-arg.txt +1 -0
  305. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/errors/unsupported-provider.txt +1 -0
  306. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/setup-complete.txt +9 -0
  307. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/applied.txt +1 -0
  308. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/created.txt +1 -0
  309. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/no-more-pending.txt +1 -0
  310. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/no-pending.txt +1 -0
  311. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/no-rollback.txt +1 -0
  312. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/messages/status/rolled-back.txt +1 -0
  313. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/scaffold/down.sql +1 -0
  314. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/scaffold/up.sql +1 -0
  315. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/mysql/migrate_logs.sql +11 -0
  316. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/mysql/migrates.sql +7 -0
  317. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/oracle/migrate_logs.sql +14 -0
  318. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/oracle/migrates.sql +10 -0
  319. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/postgres/migrate_logs.sql +11 -0
  320. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/postgres/migrates.sql +7 -0
  321. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlite/migrate_logs.sql +11 -0
  322. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlite/migrates.sql +7 -0
  323. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlserver/migrate_logs.sql +12 -0
  324. package/csharp/Dialects/Sqlite/bin/Debug/net9.0/templates/sql/sqlserver/migrates.sql +8 -0
  325. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  326. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateS.4867C581.Up2Date +0 -0
  327. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.AssemblyInfo.cs +22 -0
  328. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.AssemblyInfoInputs.cache +1 -0
  329. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.GeneratedMSBuildEditorConfig.editorconfig +18 -0
  330. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.GlobalUsings.g.cs +8 -0
  331. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.assets.cache +0 -0
  332. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.csproj.AssemblyReference.cache +0 -0
  333. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.csproj.CoreCompileInputs.cache +1 -0
  334. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.csproj.FileListAbsolute.txt +63 -0
  335. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.dll +0 -0
  336. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.pdb +0 -0
  337. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/MigrateSqlite.sourcelink.json +1 -0
  338. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/ref/MigrateSqlite.dll +0 -0
  339. package/csharp/Dialects/Sqlite/obj/Debug/net9.0/refint/MigrateSqlite.dll +0 -0
  340. package/csharp/Dialects/Sqlite/obj/MigrateSqlite.csproj.nuget.dgspec.json +172 -0
  341. package/csharp/Dialects/Sqlite/obj/MigrateSqlite.csproj.nuget.g.props +15 -0
  342. package/csharp/Dialects/Sqlite/obj/MigrateSqlite.csproj.nuget.g.targets +6 -0
  343. package/csharp/Dialects/Sqlite/obj/project.assets.json +5263 -0
  344. package/csharp/Dialects/Sqlite/obj/project.nuget.cache +99 -0
  345. package/csharp/GlobalUsings.cs +6 -0
  346. package/csharp/Infrastructure/Checksum.cs +18 -0
  347. package/csharp/Infrastructure/CliSpec.cs +228 -0
  348. package/csharp/Infrastructure/ConnectionResolver.cs +9 -0
  349. package/csharp/Infrastructure/ConnectionStringUrl.cs +47 -0
  350. package/csharp/Infrastructure/CreateDatabase.cs +7 -0
  351. package/csharp/Infrastructure/DbExecute.cs +81 -0
  352. package/csharp/Infrastructure/HelpTemplates.cs +47 -0
  353. package/csharp/Infrastructure/MigrateCli.cs +159 -0
  354. package/csharp/Infrastructure/MigrateLog.cs +54 -0
  355. package/csharp/Infrastructure/Migrater.cs +157 -0
  356. package/csharp/Infrastructure/Migrations.cs +105 -0
  357. package/csharp/Infrastructure/SqlTemplates.cs +10 -0
  358. package/csharp/MigrateCreate.cs +114 -0
  359. package/csharp/MigrateDown.cs +147 -0
  360. package/csharp/MigrateRunner.Core.csproj +66 -0
  361. package/csharp/MigrateRunner.csproj +63 -0
  362. package/csharp/MigrateRunnerServices.cs +55 -0
  363. package/csharp/MigrateSetup.cs +145 -0
  364. package/csharp/MigrateUp.cs +122 -0
  365. package/csharp/Program.cs +40 -0
  366. package/{dist → orchestrator/dist}/cli-spec.d.ts +1 -1
  367. package/{dist → orchestrator/dist}/cli-spec.js +10 -2
  368. package/orchestrator/dist/config.d.ts +13 -0
  369. package/orchestrator/dist/config.js +48 -0
  370. package/orchestrator/dist/dialects.d.ts +2 -0
  371. package/orchestrator/dist/dialects.js +25 -0
  372. package/orchestrator/dist/dispatch.d.ts +9 -0
  373. package/orchestrator/dist/dispatch.js +36 -0
  374. package/{dist → orchestrator/dist}/help.d.ts +0 -1
  375. package/orchestrator/dist/help.js +36 -0
  376. package/orchestrator/dist/languages.d.ts +4 -0
  377. package/orchestrator/dist/languages.js +12 -0
  378. package/orchestrator/dist/manifests.d.ts +8 -0
  379. package/orchestrator/dist/manifests.js +53 -0
  380. package/orchestrator/dist/migrate-create.js +3 -0
  381. package/orchestrator/dist/migrate-down.js +3 -0
  382. package/orchestrator/dist/migrate-init.js +37 -0
  383. package/orchestrator/dist/migrate-setup.js +3 -0
  384. package/orchestrator/dist/migrate-up.js +3 -0
  385. package/orchestrator/dist/parse-init.d.ts +12 -0
  386. package/orchestrator/dist/parse-init.js +56 -0
  387. package/orchestrator/dist/repo.d.ts +2 -0
  388. package/orchestrator/dist/repo.js +19 -0
  389. package/orchestrator/dist/run-init.d.ts +2 -0
  390. package/orchestrator/dist/run-init.js +66 -0
  391. package/orchestrator/dist/run.d.ts +3 -0
  392. package/orchestrator/dist/run.js +16 -0
  393. package/orchestrator/prepare.js +21 -0
  394. package/{tsconfig.build.json → orchestrator/tsconfig.json} +1 -1
  395. package/package.json +47 -59
  396. package/rust/Cargo.lock +393 -0
  397. package/rust/Cargo.toml +29 -0
  398. package/rust/api/Cargo.toml +8 -0
  399. package/rust/api/src/lib.rs +231 -0
  400. package/rust/dialects/mysql/Cargo.toml +11 -0
  401. package/rust/dialects/mysql/src/lib.rs +231 -0
  402. package/rust/dialects/oracle/Cargo.toml +11 -0
  403. package/rust/dialects/oracle/src/lib.rs +245 -0
  404. package/rust/dialects/postgres/Cargo.toml +11 -0
  405. package/rust/dialects/postgres/src/lib.rs +235 -0
  406. package/rust/dialects/sqlite/Cargo.toml +11 -0
  407. package/rust/dialects/sqlite/src/lib.rs +286 -0
  408. package/rust/dialects/sqlserver/Cargo.toml +12 -0
  409. package/rust/dialects/sqlserver/src/lib.rs +235 -0
  410. package/rust/rustfmt.toml +2 -0
  411. package/rust/src/abstractions/factory.rs +17 -0
  412. package/rust/src/abstractions/mod.rs +5 -0
  413. package/rust/src/abstractions/sql_dialect.rs +1 -0
  414. package/rust/src/argv.rs +15 -0
  415. package/rust/src/attached_dialects.rs +2 -0
  416. package/rust/src/bin/migrate_create.rs +97 -0
  417. package/rust/src/bin/migrate_down.rs +151 -0
  418. package/rust/src/bin/migrate_setup.rs +153 -0
  419. package/rust/src/bin/migrate_up.rs +126 -0
  420. package/rust/src/checksum.rs +55 -0
  421. package/rust/src/cli_spec.rs +249 -0
  422. package/rust/src/dialects/mod.rs +4 -0
  423. package/rust/src/help.rs +10 -0
  424. package/rust/src/infrastructure/connection_resolver.rs +8 -0
  425. package/rust/src/infrastructure/create_database.rs +15 -0
  426. package/rust/src/infrastructure/mod.rs +9 -0
  427. package/rust/src/infrastructure/pool.rs +79 -0
  428. package/rust/src/infrastructure/split_on_go.rs +48 -0
  429. package/rust/src/lib.rs +115 -0
  430. package/rust/src/messages.rs +102 -0
  431. package/rust/src/migrater.rs +224 -0
  432. package/rust/src/migrations.rs +151 -0
  433. package/rust/src/provider.rs +57 -0
  434. package/shared/templates/help/create.txt +16 -0
  435. package/shared/templates/help/down.txt +40 -0
  436. package/shared/templates/help/init.txt +15 -0
  437. package/shared/templates/help/setup.txt +45 -0
  438. package/shared/templates/help/up.txt +43 -0
  439. package/shared/templates/messages/checksum-drift-line.txt +1 -0
  440. package/shared/templates/messages/checksum-drift.txt +11 -0
  441. package/shared/templates/messages/down/confirm-mismatch.txt +1 -0
  442. package/shared/templates/messages/down/confirm-prompt.txt +1 -0
  443. package/shared/templates/messages/down/confirm-stdin-failed.txt +1 -0
  444. package/shared/templates/messages/down/confirm-token-mismatch.txt +1 -0
  445. package/shared/templates/messages/down/confirm-tty-required.txt +1 -0
  446. package/shared/templates/messages/down/destructive-header.txt +2 -0
  447. package/shared/templates/messages/errors/invalid-name.txt +1 -0
  448. package/shared/templates/messages/errors/migrate-path-not-dir.txt +1 -0
  449. package/shared/templates/messages/errors/missing-connection.txt +1 -0
  450. package/shared/templates/messages/errors/missing-name-hint.txt +1 -0
  451. package/shared/templates/messages/errors/missing-name.txt +1 -0
  452. package/shared/templates/messages/errors/missing-provider-hint.txt +1 -0
  453. package/shared/templates/messages/errors/missing-provider.txt +1 -0
  454. package/shared/templates/messages/errors/missing-value-for-flag.txt +1 -0
  455. package/shared/templates/messages/errors/rollback-no-down-sibling.txt +1 -0
  456. package/shared/templates/messages/errors/rollback-no-rollback-sibling.txt +1 -0
  457. package/shared/templates/messages/errors/rollback-not-in-path.txt +1 -0
  458. package/shared/templates/messages/errors/sqlite-prerequisite.txt +1 -0
  459. package/shared/templates/messages/errors/unknown-arg.txt +1 -0
  460. package/shared/templates/messages/errors/unsupported-provider.txt +1 -0
  461. package/shared/templates/messages/setup-complete.txt +9 -0
  462. package/shared/templates/messages/status/applied.txt +1 -0
  463. package/shared/templates/messages/status/created.txt +1 -0
  464. package/shared/templates/messages/status/no-more-pending.txt +1 -0
  465. package/shared/templates/messages/status/no-pending.txt +1 -0
  466. package/shared/templates/messages/status/no-rollback.txt +1 -0
  467. package/shared/templates/messages/status/rolled-back.txt +1 -0
  468. package/shared/templates/scaffold/down.sql +1 -0
  469. package/shared/templates/scaffold/up.sql +1 -0
  470. package/shared/templates/sql/mysql/migrate_logs.sql +11 -0
  471. package/shared/templates/sql/mysql/migrates.sql +7 -0
  472. package/shared/templates/sql/oracle/migrate_logs.sql +14 -0
  473. package/shared/templates/sql/oracle/migrates.sql +10 -0
  474. package/shared/templates/sql/postgres/migrate_logs.sql +11 -0
  475. package/shared/templates/sql/postgres/migrates.sql +7 -0
  476. package/shared/templates/sql/sqlite/migrate_logs.sql +11 -0
  477. package/shared/templates/sql/sqlite/migrates.sql +7 -0
  478. package/shared/templates/sql/sqlserver/migrate_logs.sql +12 -0
  479. package/shared/templates/sql/sqlserver/migrates.sql +8 -0
  480. package/typescript/bundle.yaml +254 -0
  481. package/typescript/dialects/mysql/package.json +12 -0
  482. package/typescript/dialects/mysql/src/index.ts +4 -0
  483. package/{src/dialects → typescript/dialects/mysql/src}/mysql-dialect.test.ts +6 -0
  484. package/{src/dialects → typescript/dialects/mysql/src}/mysql-dialect.ts +20 -12
  485. package/typescript/dialects/oracle/package.json +13 -0
  486. package/typescript/dialects/oracle/src/index.ts +4 -0
  487. package/{src/dialects → typescript/dialects/oracle/src}/oracle-dialect.ts +4 -4
  488. package/typescript/dialects/postgres/package.json +13 -0
  489. package/typescript/dialects/postgres/src/index.ts +4 -0
  490. package/{src/dialects → typescript/dialects/postgres/src}/postgres-dialect.test.ts +18 -0
  491. package/{src/dialects → typescript/dialects/postgres/src}/postgres-dialect.ts +20 -3
  492. package/typescript/dialects/sqlite/package.json +13 -0
  493. package/typescript/dialects/sqlite/src/index.ts +4 -0
  494. package/{src/dialects → typescript/dialects/sqlite/src}/sqlite-dialect.test.ts +1 -1
  495. package/{src/dialects → typescript/dialects/sqlite/src}/sqlite-dialect.ts +5 -5
  496. package/typescript/dialects/sqlserver/package.json +13 -0
  497. package/typescript/dialects/sqlserver/src/index.ts +4 -0
  498. package/{src/dialects → typescript/dialects/sqlserver/src}/sqlserver-dialect.test.ts +10 -0
  499. package/{src/dialects → typescript/dialects/sqlserver/src}/sqlserver-dialect.ts +20 -4
  500. package/typescript/package.json +46 -0
  501. package/{src → typescript/src}/abstractions/sql-dialect-base.ts +2 -0
  502. package/{src → typescript/src}/abstractions/sql-dialect.ts +1 -0
  503. package/{src → typescript/src}/bin/migrate-down.ts +13 -35
  504. package/{src → typescript/src}/bin/migrate-setup.ts +8 -0
  505. package/{src → typescript/src}/cli-spec.ts +10 -1
  506. package/typescript/src/create-database.test.ts +18 -0
  507. package/typescript/src/create-database.ts +7 -0
  508. package/{src → typescript/src}/datasource-migrate.ts +1 -1
  509. package/typescript/src/infrastructure/default-factory.test.ts +30 -0
  510. package/typescript/src/infrastructure/default-factory.ts +41 -0
  511. package/typescript/src/infrastructure/mysql-text-protocol.ts +7 -0
  512. package/{src → typescript/src}/infrastructure/templates-root.ts +3 -0
  513. package/{src → typescript/src}/init-select.test.ts +8 -0
  514. package/{src → typescript/src}/init-select.ts +13 -9
  515. package/typescript/tsconfig.build.json +20 -0
  516. package/dist/abstractions/migrater.d.ts +0 -28
  517. package/dist/abstractions/migrater.js +0 -1
  518. package/dist/abstractions/sql-dialect-base.d.ts +0 -16
  519. package/dist/abstractions/sql-dialect-base.js +0 -19
  520. package/dist/abstractions/sql-dialect-factory.d.ts +0 -8
  521. package/dist/abstractions/sql-dialect-factory.js +0 -22
  522. package/dist/abstractions/sql-dialect.d.ts +0 -16
  523. package/dist/abstractions/sql-dialect.js +0 -1
  524. package/dist/bin/migrate-create.js +0 -71
  525. package/dist/bin/migrate-down.js +0 -135
  526. package/dist/bin/migrate-init.js +0 -77
  527. package/dist/bin/migrate-setup.js +0 -87
  528. package/dist/bin/migrate-up.js +0 -97
  529. package/dist/cli-contract.d.ts +0 -6
  530. package/dist/cli-contract.js +0 -19
  531. package/dist/cli.d.ts +0 -9
  532. package/dist/cli.js +0 -41
  533. package/dist/create-sequence.d.ts +0 -4
  534. package/dist/create-sequence.js +0 -16
  535. package/dist/datasource-migrate.d.ts +0 -31
  536. package/dist/datasource-migrate.js +0 -206
  537. package/dist/dialects/mysql-dialect.d.ts +0 -12
  538. package/dist/dialects/mysql-dialect.js +0 -56
  539. package/dist/dialects/oracle-dialect.d.ts +0 -18
  540. package/dist/dialects/oracle-dialect.js +0 -76
  541. package/dist/dialects/postgres-dialect.d.ts +0 -11
  542. package/dist/dialects/postgres-dialect.js +0 -58
  543. package/dist/dialects/sqlite-dialect.d.ts +0 -13
  544. package/dist/dialects/sqlite-dialect.js +0 -96
  545. package/dist/dialects/sqlserver-dialect.d.ts +0 -12
  546. package/dist/dialects/sqlserver-dialect.js +0 -73
  547. package/dist/help.js +0 -10
  548. package/dist/index.d.ts +0 -7
  549. package/dist/index.js +0 -6
  550. package/dist/infrastructure/connection-resolver.d.ts +0 -7
  551. package/dist/infrastructure/connection-resolver.js +0 -19
  552. package/dist/infrastructure/default-factory.d.ts +0 -4
  553. package/dist/infrastructure/default-factory.js +0 -15
  554. package/dist/infrastructure/interop-default.d.ts +0 -3
  555. package/dist/infrastructure/interop-default.js +0 -1
  556. package/dist/infrastructure/message-templates.d.ts +0 -3
  557. package/dist/infrastructure/message-templates.js +0 -18
  558. package/dist/infrastructure/split-on-go.d.ts +0 -2
  559. package/dist/infrastructure/split-on-go.js +0 -20
  560. package/dist/infrastructure/sql-templates.d.ts +0 -2
  561. package/dist/infrastructure/sql-templates.js +0 -4
  562. package/dist/infrastructure/templates-root.d.ts +0 -2
  563. package/dist/infrastructure/templates-root.js +0 -11
  564. package/dist/init-select.d.ts +0 -12
  565. package/dist/init-select.js +0 -52
  566. package/dist/migrater.d.ts +0 -12
  567. package/dist/migrater.js +0 -84
  568. package/dist/migration-client.d.ts +0 -21
  569. package/dist/migration-client.js +0 -1
  570. package/dist/path-exists.d.ts +0 -1
  571. package/dist/path-exists.js +0 -10
  572. package/dist/sql.d.ts +0 -3
  573. package/dist/sql.js +0 -15
  574. package/dist/templates/help/init.txt +0 -13
  575. package/dist/templates/messages/down/confirm-prompt.txt +0 -1
  576. package/dist/templates/messages/down/confirm-token-mismatch.txt +0 -1
  577. package/dist/templates/messages/down/confirm-tty-required.txt +0 -1
  578. package/src/bin/migrate-init.ts +0 -88
  579. package/src/infrastructure/default-factory.test.ts +0 -18
  580. package/src/infrastructure/default-factory.ts +0 -17
  581. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/create.txt +0 -0
  582. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/help/up.txt +0 -0
  583. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/checksum-drift-line.txt +0 -0
  584. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/checksum-drift.txt +0 -0
  585. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/down/confirm-mismatch.txt +0 -0
  586. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/down/confirm-stdin-failed.txt +0 -0
  587. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/invalid-name.txt +0 -0
  588. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/migrate-path-not-dir.txt +0 -0
  589. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-connection.txt +0 -0
  590. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-name-hint.txt +0 -0
  591. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-name.txt +0 -0
  592. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-provider-hint.txt +0 -0
  593. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-provider.txt +0 -0
  594. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/missing-value-for-flag.txt +0 -0
  595. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/rollback-no-down-sibling.txt +0 -0
  596. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/rollback-no-rollback-sibling.txt +0 -0
  597. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/rollback-not-in-path.txt +0 -0
  598. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/sqlite-prerequisite.txt +0 -0
  599. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/unknown-arg.txt +0 -0
  600. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/errors/unsupported-provider.txt +0 -0
  601. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/setup-complete.txt +0 -0
  602. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/applied.txt +0 -0
  603. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/created.txt +0 -0
  604. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/no-more-pending.txt +0 -0
  605. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/no-pending.txt +0 -0
  606. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/no-rollback.txt +0 -0
  607. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/messages/status/rolled-back.txt +0 -0
  608. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/scaffold/down.sql +0 -0
  609. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/scaffold/up.sql +0 -0
  610. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/mysql/migrate_logs.sql +0 -0
  611. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/mysql/migrates.sql +0 -0
  612. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/oracle/migrate_logs.sql +0 -0
  613. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/oracle/migrates.sql +0 -0
  614. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/postgres/migrate_logs.sql +0 -0
  615. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/postgres/migrates.sql +0 -0
  616. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlite/migrate_logs.sql +0 -0
  617. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlite/migrates.sql +0 -0
  618. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlserver/migrate_logs.sql +0 -0
  619. /package/{dist → csharp/Dialects/Mysql/bin/Debug/net9.0}/templates/sql/sqlserver/migrates.sql +0 -0
  620. /package/{dist/bin → orchestrator/dist}/migrate-create.d.ts +0 -0
  621. /package/{dist/bin → orchestrator/dist}/migrate-down.d.ts +0 -0
  622. /package/{dist/bin → orchestrator/dist}/migrate-init.d.ts +0 -0
  623. /package/{dist/bin → orchestrator/dist}/migrate-setup.d.ts +0 -0
  624. /package/{dist/bin → orchestrator/dist}/migrate-up.d.ts +0 -0
  625. /package/{src/dialects → typescript/dialects/oracle/src}/oracle-dialect.test.ts +0 -0
  626. /package/{src/dialects → typescript/dialects/sqlite/src}/sqlite-dialect.rollback.test.ts +0 -0
  627. /package/{src → typescript/src}/abstractions/migrater.ts +0 -0
  628. /package/{src → typescript/src}/abstractions/sql-dialect-factory.ts +0 -0
  629. /package/{src → typescript/src}/bin/migrate-create.ts +0 -0
  630. /package/{src → typescript/src}/bin/migrate-up.ts +0 -0
  631. /package/{src → typescript/src}/cli-contract.ts +0 -0
  632. /package/{src → typescript/src}/cli.ts +0 -0
  633. /package/{src → typescript/src}/create-sequence.ts +0 -0
  634. /package/{src → typescript/src}/generate-help.test.ts +0 -0
  635. /package/{src → typescript/src}/generate-help.ts +0 -0
  636. /package/{src → typescript/src}/help.test.ts +0 -0
  637. /package/{src → typescript/src}/help.ts +0 -0
  638. /package/{src → typescript/src}/index.ts +0 -0
  639. /package/{src → typescript/src}/infrastructure/connection-resolver.ts +0 -0
  640. /package/{src → typescript/src}/infrastructure/interop-default.test.ts +0 -0
  641. /package/{src → typescript/src}/infrastructure/interop-default.ts +0 -0
  642. /package/{src → typescript/src}/infrastructure/message-templates.ts +0 -0
  643. /package/{src → typescript/src}/infrastructure/split-on-go.ts +0 -0
  644. /package/{src → typescript/src}/infrastructure/sql-templates.ts +0 -0
  645. /package/{src → typescript/src}/migrater.ts +0 -0
  646. /package/{src → typescript/src}/migration-client.ts +0 -0
  647. /package/{src → typescript/src}/path-exists.ts +0 -0
  648. /package/{src → typescript/src}/setup-sql.test.ts +0 -0
  649. /package/{src → typescript/src}/sql.ts +0 -0
@@ -51,7 +51,7 @@ describe('SqliteDialect', () => {
51
51
  const dir = await mkdtemp(join(tmpdir(), 'sqlite-setup-'));
52
52
  const file = join(dir, 'nested', 'db', 'app.sqlite');
53
53
  await dialect.prepareSetup(file);
54
- const { pathExists } = await import('../path-exists.ts');
54
+ const { pathExists } = await import('../../../src/path-exists.ts');
55
55
  expect(await pathExists(join(dir, 'nested', 'db'))).toBe(true);
56
56
  await dialect.prepareSetup(':memory:');
57
57
  });
@@ -1,10 +1,10 @@
1
1
  import { mkdir } from 'node:fs/promises';
2
2
  import { dirname } from 'node:path';
3
- import type { MigrationClient, MigrationRow, MigrationSqlParam } from '../migration-client.ts';
4
- import { pathExists } from '../path-exists.ts';
5
- import { readSqlTemplate } from '../infrastructure/sql-templates.ts';
6
- import { fillTemplate, loadMessage } from '../infrastructure/message-templates.ts';
7
- import { SqlDialectBase } from '../abstractions/sql-dialect-base.ts';
3
+ import type { MigrationClient, MigrationRow, MigrationSqlParam } from '../../../src/migration-client.ts';
4
+ import { pathExists } from '../../../src/path-exists.ts';
5
+ import { readSqlTemplate } from '../../../src/infrastructure/sql-templates.ts';
6
+ import { fillTemplate, loadMessage } from '../../../src/infrastructure/message-templates.ts';
7
+ import { SqlDialectBase } from '../../../src/abstractions/sql-dialect-base.ts';
8
8
 
9
9
  const [migratesDdl, migrateLogsDdl, sqlitePrerequisiteTpl] = await Promise.all([
10
10
  readSqlTemplate('sqlite', 'migrates'),
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@deterministic-code/migraters-sqlserver",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "type": "module",
6
+ "exports": {
7
+ ".": "./src/index.ts"
8
+ },
9
+ "dependencies": {
10
+ "@types/mssql": "*",
11
+ "mssql": "*"
12
+ }
13
+ }
@@ -0,0 +1,4 @@
1
+ import { SqlServerDialect } from './sqlserver-dialect.ts';
2
+
3
+ export const createDialect = (): SqlServerDialect => new SqlServerDialect();
4
+ export { SqlServerDialect };
@@ -68,6 +68,16 @@ describe('SqlServerDialect', () => {
68
68
  await dialect.prepareSetup('mssql://x');
69
69
  });
70
70
 
71
+ it('createDatabaseIfMissing creates the database unless it is master', async () => {
72
+ await dialect.createDatabaseIfMissing(
73
+ 'Server=sqlserver,1433;User Id=sa;Password=x;Database=proof',
74
+ );
75
+ expect(mssql.state.batches[0]).toContain('CREATE DATABASE [proof]');
76
+ await dialect.createDatabaseIfMissing(
77
+ 'Server=sqlserver,1433;User Id=sa;Password=x;Database=master',
78
+ );
79
+ });
80
+
71
81
  it('createClient binds ? as @pN and handles empty recordsets', async () => {
72
82
  const client = await dialect.createClient('Server=localhost');
73
83
  expect(client.dialect).toBe('sqlserver');
@@ -1,8 +1,8 @@
1
1
  import type { Request as MssqlRequest } from 'mssql';
2
- import type { MigrationClient, MigrationSqlParam } from '../migration-client.ts';
3
- import { interopDefault } from '../infrastructure/interop-default.ts';
4
- import { readSqlTemplate } from '../infrastructure/sql-templates.ts';
5
- import { SqlDialectBase } from '../abstractions/sql-dialect-base.ts';
2
+ import type { MigrationClient, MigrationSqlParam } from '../../../src/migration-client.ts';
3
+ import { interopDefault } from '../../../src/infrastructure/interop-default.ts';
4
+ import { readSqlTemplate } from '../../../src/infrastructure/sql-templates.ts';
5
+ import { SqlDialectBase } from '../../../src/abstractions/sql-dialect-base.ts';
6
6
 
7
7
  const [migratesDdl, migrateLogsDdl] = await Promise.all([
8
8
  readSqlTemplate('sqlserver', 'migrates'),
@@ -41,6 +41,22 @@ export class SqlServerDialect extends SqlDialectBase {
41
41
  return `OFFSET 0 ROWS FETCH NEXT ${n} ROWS ONLY`;
42
42
  }
43
43
 
44
+ async createDatabaseIfMissing(connection: string): Promise<void> {
45
+ const match = /(?:^|;)Database=([^;]+)/i.exec(connection);
46
+ const name = match?.[1]?.trim();
47
+ if (!name || /^master$/i.test(name)) return;
48
+ const admin = connection.replace(/(^|;)Database=[^;]*/i, '$1Database=master');
49
+ const { default: mssql } = await import('mssql');
50
+ const pool = await mssql.connect(admin);
51
+ try {
52
+ await pool.request().batch(
53
+ `IF DB_ID(N'${name.replaceAll("'", "''")}') IS NULL CREATE DATABASE [${name.replaceAll(']', ']]')}];`,
54
+ );
55
+ } finally {
56
+ await pool.close();
57
+ }
58
+ }
59
+
44
60
  async createClient(connection: string): Promise<MigrationClient> {
45
61
  const mssql = interopDefault(await import('mssql'));
46
62
  const pool = await mssql.connect(connection);
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@deterministic-code/migraters-typescript",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "description": "TypeScript migrate runner for deterministic-code.",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/src/index.d.ts",
10
+ "import": "./dist/src/index.js"
11
+ },
12
+ "./package.json": "./package.json"
13
+ },
14
+ "bin": {
15
+ "migrate-up": "./dist/src/bin/migrate-up.js",
16
+ "migrate-down": "./dist/src/bin/migrate-down.js",
17
+ "migrate-setup": "./dist/src/bin/migrate-setup.js",
18
+ "migrate-create": "./dist/src/bin/migrate-create.js"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "src",
23
+ "dialects",
24
+ "cli.yaml",
25
+ "bundle.yaml",
26
+ "tsconfig.build.json"
27
+ ],
28
+ "scripts": {
29
+ "build": "rm -rf dist.tmp && tsc -p tsconfig.build.json --outDir dist.tmp && cp -R ../shared/templates dist.tmp/templates && cp ../cli.yaml dist.tmp/cli.yaml && rm -rf dist && mv dist.tmp dist",
30
+ "typecheck": "tsc -p tsconfig.src.json --noEmit",
31
+ "test": "npm run build && node ../orchestrator/dist/migrate-init.js --language typescript --all && vitest run --coverage",
32
+ "test:coverage": "vitest run --coverage",
33
+ "generate:help": "node --experimental-strip-types src/generate-help.ts",
34
+ "format": "prettier --write ."
35
+ },
36
+ "dependencies": {
37
+ "typescript": "^5.8.0",
38
+ "yaml": "^2.9.0"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^22.10.0",
42
+ "@vitest/coverage-v8": "^3.2.4",
43
+ "prettier": "^3.9.6",
44
+ "vitest": "^3.2.4"
45
+ }
46
+ }
@@ -30,6 +30,8 @@ export abstract class SqlDialectBase implements ISqlDialect {
30
30
 
31
31
  async prepareSetup(_connection: string): Promise<void> {}
32
32
 
33
+ async createDatabaseIfMissing(_connection: string): Promise<void> {}
34
+
33
35
  abstract createClient(
34
36
  connection: string,
35
37
  ): Promise<import('../migration-client.ts').MigrationClient>;
@@ -13,5 +13,6 @@ export interface ISqlDialect {
13
13
  translatePlaceholders(sql: string): string;
14
14
  prerequisiteError(connection: string): Promise<string | null>;
15
15
  prepareSetup(connection: string): Promise<void>;
16
+ createDatabaseIfMissing(connection: string): Promise<void>;
16
17
  createClient(connection: string): Promise<MigrationClient>;
17
18
  }
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // Rolls back the most recently applied migration (one step). DESTRUCTIVE: prints a random 4-letter uppercase confirmation token and refuses to proceed unless the user types it back on stdin. Pass --confirm <TOKEN> matching the printed token to bypass the interactive prompt (CI / scripted use).
2
+ // Rolls back the most recently applied migration (one step). DESTRUCTIVE: refuses to proceed unless the user types confirm on stdin, or passes --confirm.
3
3
 
4
4
  import { resolve } from 'node:path';
5
5
  import { createInterface } from 'node:readline/promises';
@@ -11,8 +11,7 @@ const [
11
11
  HELP_TEXT,
12
12
  unknownArgTpl,
13
13
  destructiveHeaderTpl,
14
- confirmMismatchTpl,
15
- confirmTtyRequiredTpl,
14
+ confirmTtyRequiredMsg,
16
15
  confirmPromptTpl,
17
16
  confirmTokenMismatchMsg,
18
17
  noRollbackMsg,
@@ -21,7 +20,6 @@ const [
21
20
  loadHelp('migrate-down'),
22
21
  loadMessage('errors/unknown-arg'),
23
22
  loadMessage('down/destructive-header'),
24
- loadMessage('down/confirm-mismatch'),
25
23
  loadMessage('down/confirm-tty-required'),
26
24
  loadMessage('down/confirm-prompt'),
27
25
  loadMessage('down/confirm-token-mismatch'),
@@ -35,13 +33,13 @@ const parseArgs = (argv: string[]) => {
35
33
  migratePath: string | null;
36
34
  migrateRoot: string | null;
37
35
  connection: string | null;
38
- confirm: string | null;
36
+ confirm: boolean;
39
37
  } = {
40
38
  provider: null,
41
39
  migratePath: null,
42
40
  migrateRoot: null,
43
41
  connection: null,
44
- confirm: null,
42
+ confirm: false,
45
43
  };
46
44
  const rest = argv.slice(2);
47
45
  for (let i = 0; i < rest.length; i++) {
@@ -69,9 +67,8 @@ const parseArgs = (argv: string[]) => {
69
67
  } else if ((taken = takeFlag(rest, i, a, '--connection'))) {
70
68
  args.connection = taken.value;
71
69
  i = taken.next;
72
- } else if ((taken = takeFlag(rest, i, a, '--confirm'))) {
73
- args.confirm = taken.value;
74
- i = taken.next;
70
+ } else if (a === '--confirm') {
71
+ args.confirm = true;
75
72
  } else {
76
73
  process.stderr.write(fillTemplate(unknownArgTpl, { arg: a }));
77
74
  process.exit(2);
@@ -89,24 +86,15 @@ const resolveMigratePath = (
89
86
  return `${root}/${dialect}/migrations`;
90
87
  };
91
88
 
92
- const randomToken = (): string => {
93
- const alphabet = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
94
- const buf = new Uint8Array(4);
95
- globalThis.crypto.getRandomValues(buf);
96
- let out = '';
97
- for (let i = 0; i < 4; i++) out += alphabet[(buf[i] as number) % alphabet.length];
98
- return out;
99
- };
100
-
101
- const promptConfirmation = async (token: string): Promise<boolean> => {
89
+ const promptConfirmation = async (): Promise<boolean> => {
102
90
  if (!process.stdin.isTTY) {
103
- process.stderr.write(fillTemplate(confirmTtyRequiredTpl, { token }));
91
+ process.stderr.write(confirmTtyRequiredMsg);
104
92
  process.exit(2);
105
93
  }
106
94
  const rl = createInterface({ input: process.stdin, output: process.stderr });
107
95
  try {
108
- const answer = await rl.question(fillTemplate(confirmPromptTpl, { token }));
109
- return answer.trim() === token;
96
+ const answer = await rl.question(confirmPromptTpl);
97
+ return answer.trim() === 'confirm';
110
98
  } finally {
111
99
  rl.close();
112
100
  }
@@ -127,20 +115,10 @@ const main = async () => {
127
115
  process.exit(2);
128
116
  }
129
117
 
130
- const token = randomToken();
131
- process.stderr.write(
132
- fillTemplate(destructiveHeaderTpl, { dialect: dialect.name, token }),
133
- );
118
+ process.stderr.write(fillTemplate(destructiveHeaderTpl, { dialect: dialect.name }));
134
119
 
135
- if (args.confirm !== null) {
136
- if (args.confirm !== token) {
137
- process.stderr.write(
138
- fillTemplate(confirmMismatchTpl, { supplied: args.confirm, token }),
139
- );
140
- process.exit(2);
141
- }
142
- } else {
143
- const ok = await promptConfirmation(token);
120
+ if (!args.confirm) {
121
+ const ok = await promptConfirmation();
144
122
  if (!ok) {
145
123
  process.stderr.write(confirmTokenMismatchMsg);
146
124
  process.exit(2);
@@ -2,6 +2,7 @@
2
2
  // Idempotent migrate-setup — creates the migrates + migrate_logs tracking tables per dialect.
3
3
 
4
4
  import { missingProviderMsg, requireConnection, requireDialect, takeFlag } from '../cli.ts';
5
+ import { createDatabase } from '../create-database.ts';
5
6
  import { fillTemplate, loadMessage } from '../infrastructure/message-templates.ts';
6
7
  import { loadHelp, Migrater } from '../index.ts';
7
8
 
@@ -17,11 +18,13 @@ const parseArgs = (argv: string[]) => {
17
18
  connection: string | null;
18
19
  migrationsPath: string | null;
19
20
  andUp: boolean;
21
+ createDatabase: boolean;
20
22
  } = {
21
23
  provider: null,
22
24
  connection: null,
23
25
  migrationsPath: null,
24
26
  andUp: false,
27
+ createDatabase: false,
25
28
  };
26
29
  const rest = argv.slice(2);
27
30
  for (let i = 0; i < rest.length; i++) {
@@ -34,6 +37,10 @@ const parseArgs = (argv: string[]) => {
34
37
  args.andUp = true;
35
38
  continue;
36
39
  }
40
+ if (a === '--create-database') {
41
+ args.createDatabase = true;
42
+ continue;
43
+ }
37
44
  let taken;
38
45
  if ((taken = takeFlag(rest, i, a, '--provider'))) {
39
46
  args.provider = taken.value;
@@ -65,6 +72,7 @@ const main = async () => {
65
72
  const connection = requireConnection(dialect, args.connection);
66
73
 
67
74
  const migrationsPath = args.migrationsPath ?? `./sql/${dialect.name}/migrations`;
75
+ if (args.createDatabase) await createDatabase(dialect.name, connection);
68
76
  const migrater = new Migrater(dialect);
69
77
  await migrater.setup({ connection, migrationsPath });
70
78
  process.stdout.write(
@@ -20,6 +20,7 @@ export type CliCommand = {
20
20
  export type CliSpec = {
21
21
  command: string;
22
22
  providers: string[];
23
+ languages: string[];
23
24
  provider_aliases: Record<string, string>;
24
25
  aliases: Record<string, string>;
25
26
  env_var_list_separator: string;
@@ -30,8 +31,10 @@ export type CliSpec = {
30
31
  export const cliYamlPath = (): string => {
31
32
  const here = dirname(fileURLToPath(import.meta.url));
32
33
  const candidates = [
34
+ join(here, 'cli.yaml'),
33
35
  join(here, '..', 'cli.yaml'),
34
36
  join(here, '..', '..', 'cli.yaml'),
37
+ join(here, '..', '..', '..', 'cli.yaml'),
35
38
  join(process.cwd(), 'cli.yaml'),
36
39
  ];
37
40
  const found = candidates.find((candidate) => existsSync(candidate));
@@ -47,9 +50,15 @@ export const migrateCommand = (verb: MigrateVerb): string =>
47
50
  cliSpec.command.replace('{verb}', verb);
48
51
 
49
52
  const providers = cliSpec.providers.join('|');
53
+ const languages = (cliSpec.languages ?? []).join('|');
50
54
 
51
55
  const argUsage = (arg: CliArg): string => {
52
- const ph = arg.placeholder === 'providers' ? providers : arg.placeholder;
56
+ const ph =
57
+ arg.placeholder === 'providers'
58
+ ? providers
59
+ : arg.placeholder === 'languages'
60
+ ? languages
61
+ : arg.placeholder;
53
62
  const body = ph ? `${arg.flag} <${ph}>` : arg.flag;
54
63
  return arg.required ? body : `[${body}]`;
55
64
  };
@@ -0,0 +1,18 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { createDatabase } from './create-database.ts';
3
+ import { defaultDialectFactory } from './infrastructure/default-factory.ts';
4
+
5
+ describe('createDatabase', () => {
6
+ it('no-ops when the provider is not registered', async () => {
7
+ await createDatabase('dbase', 'x');
8
+ });
9
+
10
+ it('delegates to the dialect when it is installed', async () => {
11
+ const dialect = defaultDialectFactory.tryGet('sqlite') ?? defaultDialectFactory.all()[0];
12
+ if (!dialect) return;
13
+ const spy = vi.spyOn(dialect, 'createDatabaseIfMissing').mockResolvedValue();
14
+ await createDatabase(dialect.name, 'conn');
15
+ expect(spy).toHaveBeenCalledWith('conn');
16
+ spy.mockRestore();
17
+ });
18
+ });
@@ -0,0 +1,7 @@
1
+ import { defaultDialectFactory } from './infrastructure/default-factory.ts';
2
+
3
+ export const createDatabase = async (provider: string, connection: string): Promise<void> => {
4
+ const dialect = defaultDialectFactory.tryGet(provider);
5
+ if (!dialect) return;
6
+ await dialect.createDatabaseIfMissing(connection);
7
+ };
@@ -15,7 +15,7 @@ export type {
15
15
  MigrationSqlParam,
16
16
  SqliteRawDatabase,
17
17
  } from './migration-client.ts';
18
- export { applyMysqlDdlViaTextProtocol } from './dialects/mysql-dialect.ts';
18
+ export { applyMysqlDdlViaTextProtocol } from './infrastructure/mysql-text-protocol.ts';
19
19
 
20
20
  /** One discovered migration: its up script and the rollback sibling when present. */
21
21
  export interface MigrationDescriptor {
@@ -0,0 +1,30 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { defaultDialectFactory } from './default-factory.ts';
3
+
4
+ describe('defaultDialectFactory', () => {
5
+ it('registers every dialect name and alias', () => {
6
+ const names = defaultDialectFactory.all().map((d) => d.name);
7
+ for (const name of names) {
8
+ expect(['sqlite', 'postgres', 'mysql', 'sqlserver', 'oracle']).toContain(name);
9
+ }
10
+ if (names.includes('sqlite')) {
11
+ expect(defaultDialectFactory.get('sqlite3').name).toBe('sqlite');
12
+ }
13
+ if (names.includes('postgres')) {
14
+ expect(defaultDialectFactory.get('postgresql').name).toBe('postgres');
15
+ }
16
+ if (names.includes('mysql')) {
17
+ expect(defaultDialectFactory.get('mariadb').name).toBe('mysql');
18
+ }
19
+ if (names.includes('sqlserver')) {
20
+ expect(defaultDialectFactory.get('mssql').name).toBe('sqlserver');
21
+ expect(defaultDialectFactory.get('mssqlserver').name).toBe('sqlserver');
22
+ expect(defaultDialectFactory.get('ms-sql-server').name).toBe('sqlserver');
23
+ }
24
+ if (names.includes('oracle')) {
25
+ expect(defaultDialectFactory.get('ora').name).toBe('oracle');
26
+ }
27
+ expect(defaultDialectFactory.tryGet('nope')).toBeUndefined();
28
+ expect(() => defaultDialectFactory.get('nope')).toThrow(/Unknown SQL dialect/);
29
+ });
30
+ });
@@ -0,0 +1,41 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath, pathToFileURL } from 'node:url';
4
+ import { SqlDialectFactory } from '../abstractions/sql-dialect-factory.ts';
5
+ import type { ISqlDialect } from '../abstractions/sql-dialect.ts';
6
+ import { ConnectionResolver } from './connection-resolver.ts';
7
+
8
+ const DIALECT_PACKAGES = [
9
+ 'sqlite',
10
+ 'postgres',
11
+ 'mysql',
12
+ 'sqlserver',
13
+ 'oracle',
14
+ ] as const;
15
+
16
+ const dialectEntry = (name: string): string => {
17
+ const here = dirname(fileURLToPath(import.meta.url));
18
+ const ext = import.meta.url.endsWith('.ts') ? '.ts' : '.js';
19
+ return join(here, '..', '..', 'dialects', name, 'src', `index${ext}`);
20
+ };
21
+
22
+ const loadInstalledDialects = async (): Promise<ISqlDialect[]> => {
23
+ const loaded: ISqlDialect[] = [];
24
+ for (const name of DIALECT_PACKAGES) {
25
+ const file = dialectEntry(name);
26
+ if (!existsSync(file)) continue;
27
+ try {
28
+ const mod = (await import(pathToFileURL(file).href)) as { createDialect?: () => ISqlDialect };
29
+ if (typeof mod.createDialect === 'function') {
30
+ loaded.push(mod.createDialect());
31
+ }
32
+ } catch {
33
+ // Dialect is compiled and drivers are installed by migrate-init.
34
+ }
35
+ }
36
+ return loaded;
37
+ };
38
+
39
+ export const defaultDialectFactory = new SqlDialectFactory(await loadInstalledDialects());
40
+
41
+ export const connectionResolver = new ConnectionResolver();
@@ -0,0 +1,7 @@
1
+ /** why: DDL statements (DROP/CREATE PROCEDURE) reject prepared-statement protocol (MySQL 1295) */
2
+ export async function applyMysqlDdlViaTextProtocol(
3
+ conn: { query: (sql: string) => Promise<unknown> },
4
+ sql: string,
5
+ ): Promise<void> {
6
+ await conn.query(sql);
7
+ }
@@ -6,6 +6,9 @@ const HERE = dirname(fileURLToPath(import.meta.url));
6
6
  /** Repo `shared/templates`; after build, `dist/templates` (copied from shared). */
7
7
  export const templatesRoot = (): string => {
8
8
  const normalized = HERE.replaceAll('\\', '/');
9
+ if (normalized.endsWith('/dist/src/infrastructure') || normalized.endsWith('/dist.tmp/src/infrastructure')) {
10
+ return join(HERE, '..', '..', 'templates');
11
+ }
9
12
  if (normalized.endsWith('/dist/infrastructure')) {
10
13
  return join(HERE, '..', 'templates');
11
14
  }
@@ -23,4 +23,12 @@ describe('init dialect selection', () => {
23
23
  expect.arrayContaining(['better-sqlite3', 'pg', 'mysql2', 'mssql', 'oracledb']),
24
24
  );
25
25
  });
26
+
27
+ it('reads csharp packages and versions from bundle.yaml', async () => {
28
+ const selected = await loadSelectedPackages(['sqlite', 'sqlserver'], 'csharp');
29
+ expect(selected.packages).toEqual([
30
+ { name: 'Microsoft.Data.Sqlite', version: '9.0.0' },
31
+ { name: 'Microsoft.Data.SqlClient', version: '6.0.2' },
32
+ ]);
33
+ });
26
34
  });
@@ -7,7 +7,7 @@ import { cliSpec } from './cli-spec.ts';
7
7
 
8
8
  export type SelectedDialects = {
9
9
  names: string[];
10
- packages: { name: string; version: string }[];
10
+ packages: { name: string }[];
11
11
  allDriverPackages: string[];
12
12
  };
13
13
 
@@ -36,16 +36,17 @@ export const resolveInitDialects = (raw: string[], all: boolean): string[] => {
36
36
  return cliSpec.providers.filter((name) => selected.has(name));
37
37
  };
38
38
 
39
+ export type BundlePackage = {
40
+ name: string;
41
+ version?: string;
42
+ };
43
+
39
44
  type BundleDialect = {
40
- packages?: { name: string; version: string }[];
45
+ packages?: BundlePackage[];
41
46
  };
42
47
 
43
48
  type BundleDoc = {
44
- languages?: {
45
- typescript?: {
46
- dialects?: Record<string, BundleDialect>;
47
- };
48
- };
49
+ languages?: Record<string, { dialects?: Record<string, BundleDialect> }>;
49
50
  };
50
51
 
51
52
  export const bundleYamlPath = (): string => {
@@ -62,9 +63,12 @@ export const bundleYamlPath = (): string => {
62
63
  return found;
63
64
  };
64
65
 
65
- export const loadSelectedPackages = async (dialects: string[]): Promise<SelectedDialects> => {
66
+ export const loadSelectedPackages = async (
67
+ dialects: string[],
68
+ language = 'typescript',
69
+ ): Promise<SelectedDialects> => {
66
70
  const raw = parse(await readFile(bundleYamlPath(), 'utf8')) as BundleDoc;
67
- const byName = raw.languages?.typescript?.dialects ?? {};
71
+ const byName = raw.languages?.[language]?.dialects ?? {};
68
72
  const allDriverPackages = [
69
73
  ...new Set(Object.values(byName).flatMap((d) => (d.packages ?? []).map((p) => p.name))),
70
74
  ];
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "nodenext",
4
+ "moduleResolution": "nodenext",
5
+ "target": "ES2022",
6
+ "lib": ["ES2022"],
7
+ "types": ["node"],
8
+ "declaration": true,
9
+ "outDir": "dist",
10
+ "rootDir": ".",
11
+ "allowImportingTsExtensions": true,
12
+ "rewriteRelativeImportExtensions": true,
13
+ "skipLibCheck": true,
14
+ "noCheck": true,
15
+ "strict": true,
16
+ "forceConsistentCasingInFileNames": true
17
+ },
18
+ "include": ["src/**/*.ts", "dialects/*/src/**/*.ts"],
19
+ "exclude": ["src/**/*.test.ts", "src/generate-help.ts", "dialects/**/*.test.ts"]
20
+ }
@@ -1,28 +0,0 @@
1
- export type SetupArg = {
2
- connection: string;
3
- migrationsPath: string;
4
- };
5
- export type UpArg = {
6
- connection: string;
7
- migrationsPath: string;
8
- one?: boolean;
9
- };
10
- export type DownArg = {
11
- connection: string;
12
- migrationsPath: string;
13
- };
14
- export type CreateArg = {
15
- name: string;
16
- migrationsPath: string;
17
- };
18
- export type CreateResponse = {
19
- upName: string;
20
- downName: string;
21
- };
22
- export interface IMigrater {
23
- readonly name: string;
24
- setup(args: SetupArg): Promise<void>;
25
- up(args: UpArg): Promise<string[]>;
26
- down(args: DownArg): Promise<string | null>;
27
- create(args: CreateArg): Promise<CreateResponse>;
28
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,16 +0,0 @@
1
- import type { SqlDialect } from '../sql.ts';
2
- import type { ISqlDialect } from './sql-dialect.ts';
3
- export declare abstract class SqlDialectBase implements ISqlDialect {
4
- abstract readonly name: SqlDialect;
5
- abstract readonly connectionEnvironmentVariables: readonly string[];
6
- abstract readonly migratesDdl: string;
7
- abstract readonly migrateLogsDdl: string;
8
- readonly usesLastInsertRowid: boolean;
9
- quoteIdent(ident: string): string;
10
- nowExpr(): string;
11
- limitClause(n: number): string;
12
- translatePlaceholders(sql: string): string;
13
- prerequisiteError(_connection: string): Promise<string | null>;
14
- prepareSetup(_connection: string): Promise<void>;
15
- abstract createClient(connection: string): Promise<import('../migration-client.ts').MigrationClient>;
16
- }
@@ -1,19 +0,0 @@
1
- export class SqlDialectBase {
2
- usesLastInsertRowid = false;
3
- quoteIdent(ident) {
4
- return `"${ident}"`;
5
- }
6
- nowExpr() {
7
- return 'CURRENT_TIMESTAMP';
8
- }
9
- limitClause(n) {
10
- return `LIMIT ${n}`;
11
- }
12
- translatePlaceholders(sql) {
13
- return sql;
14
- }
15
- async prerequisiteError(_connection) {
16
- return null;
17
- }
18
- async prepareSetup(_connection) { }
19
- }
@@ -1,8 +0,0 @@
1
- import type { ISqlDialect } from './sql-dialect.ts';
2
- export declare class SqlDialectFactory {
3
- private readonly byName;
4
- constructor(dialects: readonly ISqlDialect[]);
5
- tryGet(raw: string): ISqlDialect | undefined;
6
- get(raw: string): ISqlDialect;
7
- all(): readonly ISqlDialect[];
8
- }