@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
@@ -0,0 +1,224 @@
1
+ use std::fs;
2
+ use std::path::PathBuf;
3
+ use std::time::Instant;
4
+
5
+ use crate::abstractions::SqlDialect;
6
+ use crate::checksum::checksum_hex;
7
+ use crate::infrastructure::MigrationPool;
8
+ use crate::messages::{message, scaffold};
9
+ use crate::migrations::{
10
+ assert_no_checksum_drift, discover_up_files, down_path_for, is_migration_name, next_sequence,
11
+ };
12
+
13
+ type BoxError = Box<dyn std::error::Error>;
14
+
15
+ pub struct SetupArg<'a> {
16
+ pub connection: &'a str,
17
+ pub migrations_path: &'a str,
18
+ }
19
+
20
+ pub struct UpArg<'a> {
21
+ pub connection: &'a str,
22
+ pub migrations_path: &'a str,
23
+ pub one: bool,
24
+ }
25
+
26
+ pub struct DownArg<'a> {
27
+ pub connection: &'a str,
28
+ pub migrations_path: &'a str,
29
+ }
30
+
31
+ pub struct CreateArg<'a> {
32
+ pub name: &'a str,
33
+ pub migrations_path: &'a str,
34
+ }
35
+
36
+ pub struct CreateResponse {
37
+ pub up_name: String,
38
+ pub down_name: String,
39
+ }
40
+
41
+ #[allow(async_fn_in_trait)]
42
+ pub trait IMigrater: Send + Sync {
43
+ fn name(&self) -> &'static str;
44
+ async fn setup(&self, args: SetupArg<'_>) -> Result<(), BoxError>;
45
+ async fn up(&self, args: UpArg<'_>) -> Result<Vec<String>, BoxError>;
46
+ async fn down(&self, args: DownArg<'_>) -> Result<Option<String>, BoxError>;
47
+ fn create(&self, args: CreateArg<'_>) -> Result<CreateResponse, BoxError>;
48
+ }
49
+
50
+ pub struct Migrater {
51
+ dialect: &'static dyn SqlDialect,
52
+ }
53
+
54
+ impl Migrater {
55
+ pub fn new(dialect: &'static dyn SqlDialect) -> Self {
56
+ Self { dialect }
57
+ }
58
+ }
59
+
60
+ impl IMigrater for Migrater {
61
+ fn name(&self) -> &'static str {
62
+ self.dialect.name()
63
+ }
64
+
65
+ async fn setup(&self, args: SetupArg<'_>) -> Result<(), BoxError> {
66
+ self.dialect.prepare_setup(args.connection)?;
67
+ let pool = MigrationPool::connect(self.dialect, args.connection).await?;
68
+ pool.execute(self.dialect.migrates_ddl()).await?;
69
+ pool.execute(self.dialect.migrate_logs_ddl()).await?;
70
+ fs::create_dir_all(PathBuf::from(args.migrations_path))?;
71
+ Ok(())
72
+ }
73
+
74
+ async fn up(&self, args: UpArg<'_>) -> Result<Vec<String>, BoxError> {
75
+ let pool = MigrationPool::connect(self.dialect, args.connection).await?;
76
+ let files = discover_up_files(args.migrations_path)?;
77
+ let mut applied = pool
78
+ .fetch_applied(&self.dialect.select_applied_checksum_sql())
79
+ .await?;
80
+ assert_no_checksum_drift(&files, &applied)?;
81
+ let mut names = Vec::new();
82
+ loop {
83
+ let next = files
84
+ .iter()
85
+ .find(|(n, _)| !applied.contains_key(n))
86
+ .cloned();
87
+ let Some((name, path)) = next else {
88
+ return Ok(names);
89
+ };
90
+ let sql = fs::read_to_string(&path)?;
91
+ let sum = checksum_hex(&sql);
92
+ let log_id = pool.insert_log_started(self.dialect, &name, "up").await?;
93
+ let started = Instant::now();
94
+ match pool
95
+ .apply_statements(
96
+ self.dialect,
97
+ &sql,
98
+ self.dialect.insert_applied_sql(),
99
+ &name,
100
+ Some(&sum),
101
+ )
102
+ .await
103
+ {
104
+ Ok(()) => {
105
+ let _ = pool
106
+ .update_log(
107
+ self.dialect,
108
+ log_id,
109
+ "success",
110
+ started.elapsed().as_millis() as i64,
111
+ None,
112
+ )
113
+ .await;
114
+ }
115
+ Err(e) => {
116
+ let _ = pool
117
+ .update_log(
118
+ self.dialect,
119
+ log_id,
120
+ "error",
121
+ started.elapsed().as_millis() as i64,
122
+ Some(&e.to_string()),
123
+ )
124
+ .await;
125
+ return Err(e);
126
+ }
127
+ }
128
+ applied.insert(name.clone(), Some(sum));
129
+ names.push(name);
130
+ if args.one {
131
+ return Ok(names);
132
+ }
133
+ }
134
+ }
135
+
136
+ async fn down(&self, args: DownArg<'_>) -> Result<Option<String>, BoxError> {
137
+ let pool = MigrationPool::connect(self.dialect, args.connection).await?;
138
+ let files = discover_up_files(args.migrations_path)?;
139
+ let applied = pool
140
+ .fetch_applied(&self.dialect.select_applied_checksum_sql())
141
+ .await?;
142
+ if applied.is_empty() {
143
+ return Ok(None);
144
+ }
145
+ assert_no_checksum_drift(&files, &applied)?;
146
+ let last = files
147
+ .iter()
148
+ .rev()
149
+ .find(|(n, _)| applied.contains_key(n))
150
+ .cloned();
151
+ let Some((name, _)) = last else {
152
+ return Err(message("errors/rollback-not-in-path", &[]).into());
153
+ };
154
+ let path = down_path_for(args.migrations_path, &name)
155
+ .ok_or_else(|| message("errors/rollback-no-down-sibling", &[("name", &name)]))?;
156
+ let sql = fs::read_to_string(&path)?;
157
+ let log_id = pool.insert_log_started(self.dialect, &name, "down").await?;
158
+ let started = Instant::now();
159
+ match pool
160
+ .apply_statements(
161
+ self.dialect,
162
+ &sql,
163
+ self.dialect.delete_applied_sql(),
164
+ &name,
165
+ None,
166
+ )
167
+ .await
168
+ {
169
+ Ok(()) => {
170
+ let _ = pool
171
+ .update_log(
172
+ self.dialect,
173
+ log_id,
174
+ "success",
175
+ started.elapsed().as_millis() as i64,
176
+ None,
177
+ )
178
+ .await;
179
+ }
180
+ Err(e) => {
181
+ let _ = pool
182
+ .update_log(
183
+ self.dialect,
184
+ log_id,
185
+ "error",
186
+ started.elapsed().as_millis() as i64,
187
+ Some(&e.to_string()),
188
+ )
189
+ .await;
190
+ return Err(e);
191
+ }
192
+ }
193
+ Ok(Some(name))
194
+ }
195
+
196
+ fn create(&self, args: CreateArg<'_>) -> Result<CreateResponse, BoxError> {
197
+ if !is_migration_name(args.name) {
198
+ return Err(message("errors/invalid-name", &[("name", args.name)]).into());
199
+ }
200
+ let dir = PathBuf::from(args.migrations_path);
201
+ fs::create_dir_all(&dir)?;
202
+ let seq = if dir.is_dir() {
203
+ let mut names = Vec::new();
204
+ for entry in fs::read_dir(&dir)? {
205
+ let entry = entry?;
206
+ if let Ok(file_name) = entry.file_name().into_string() {
207
+ names.push(file_name);
208
+ }
209
+ }
210
+ next_sequence(names)
211
+ } else {
212
+ 1
213
+ };
214
+ let prefix = format!("{seq:04}");
215
+ let up_name = format!("{prefix}_{}_up.sql", args.name);
216
+ let down_name = format!("{prefix}_{}_down.sql", args.name);
217
+ fs::write(dir.join(&up_name), scaffold("up", &[("name", args.name)]))?;
218
+ fs::write(
219
+ dir.join(&down_name),
220
+ scaffold("down", &[("name", args.name)]),
221
+ )?;
222
+ Ok(CreateResponse { up_name, down_name })
223
+ }
224
+ }
@@ -0,0 +1,151 @@
1
+ use std::collections::HashMap;
2
+ use std::fs;
3
+ use std::path::PathBuf;
4
+
5
+ use crate::checksum::checksum_hex;
6
+ use crate::messages::message;
7
+
8
+ pub fn catalog_name(stored: &str) -> &str {
9
+ stored.strip_suffix("_up.sql").unwrap_or(stored)
10
+ }
11
+
12
+ pub fn is_migration_name(s: &str) -> bool {
13
+ let mut chars = s.chars();
14
+ match chars.next() {
15
+ Some(c) if c.is_ascii_lowercase() => {}
16
+ _ => return false,
17
+ }
18
+ chars.all(|c| c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_')
19
+ }
20
+
21
+ pub fn parse_sequence(filename: &str) -> Option<u32> {
22
+ if !filename.ends_with("_up.sql") {
23
+ return None;
24
+ }
25
+ let bytes = filename.as_bytes();
26
+ let mut end = 0usize;
27
+ while end < bytes.len() && end < 4 && bytes[end].is_ascii_digit() {
28
+ end += 1;
29
+ }
30
+ if end == 0 {
31
+ return None;
32
+ }
33
+ if end >= bytes.len() || bytes[end] != b'_' {
34
+ return None;
35
+ }
36
+ if end == 4 && bytes.len() > 4 && bytes[4].is_ascii_digit() {
37
+ return None;
38
+ }
39
+ filename[..end].parse::<u32>().ok()
40
+ }
41
+
42
+ pub fn next_sequence<I, S>(filenames: I) -> u32
43
+ where
44
+ I: IntoIterator<Item = S>,
45
+ S: AsRef<str>,
46
+ {
47
+ let mut max = 0u32;
48
+ for name in filenames {
49
+ if let Some(n) = parse_sequence(name.as_ref()) {
50
+ if n > max {
51
+ max = n;
52
+ }
53
+ }
54
+ }
55
+ max + 1
56
+ }
57
+
58
+ pub fn discover_up_files(
59
+ migrate_path: &str,
60
+ ) -> Result<Vec<(String, PathBuf)>, Box<dyn std::error::Error>> {
61
+ let dir = PathBuf::from(migrate_path);
62
+ if !dir.is_dir() {
63
+ return Err(message("errors/migrate-path-not-dir", &[("path", migrate_path)]).into());
64
+ }
65
+ let mut out: Vec<(String, PathBuf)> = Vec::new();
66
+ for entry in fs::read_dir(&dir)? {
67
+ let entry = entry?;
68
+ let path = entry.path();
69
+ if !path.is_file() {
70
+ continue;
71
+ }
72
+ let file_name = match path.file_name().and_then(|s| s.to_str()) {
73
+ Some(n) if n.ends_with("_up.sql") => n.to_string(),
74
+ _ => continue,
75
+ };
76
+ let name = file_name[..file_name.len() - "_up.sql".len()].to_string();
77
+ out.push((name, path));
78
+ }
79
+ out.sort_by(|a, b| a.0.cmp(&b.0));
80
+ Ok(out)
81
+ }
82
+
83
+ pub fn down_path_for(migrate_path: &str, name: &str) -> Option<PathBuf> {
84
+ let path = PathBuf::from(migrate_path).join(format!("{name}_down.sql"));
85
+ path.is_file().then_some(path)
86
+ }
87
+
88
+ pub fn assert_no_checksum_drift(
89
+ files: &[(String, PathBuf)],
90
+ applied: &HashMap<String, Option<String>>,
91
+ ) -> Result<(), String> {
92
+ if std::env::var("MIGRATE_ALLOW_CHECKSUM_DRIFT")
93
+ .ok()
94
+ .as_deref()
95
+ == Some("1")
96
+ {
97
+ return Ok(());
98
+ }
99
+ let mut lines = Vec::new();
100
+ for (name, path) in files {
101
+ let Some(Some(stored)) = applied.get(name).cloned() else {
102
+ continue;
103
+ };
104
+ let sql = fs::read_to_string(path).map_err(|e| e.to_string())?;
105
+ let current = checksum_hex(&sql);
106
+ if current != stored {
107
+ let line = message(
108
+ "checksum-drift-line",
109
+ &[
110
+ ("name", name),
111
+ ("stored", &stored.chars().take(12).collect::<String>()),
112
+ ("current", &current.chars().take(12).collect::<String>()),
113
+ ],
114
+ );
115
+ lines.push(line.trim_end().to_string());
116
+ }
117
+ }
118
+ if lines.is_empty() {
119
+ return Ok(());
120
+ }
121
+ Err(message("checksum-drift", &[("lines", &lines.join("\n"))])
122
+ .trim_end()
123
+ .to_string())
124
+ }
125
+
126
+ #[cfg(test)]
127
+ mod tests {
128
+ use super::{discover_up_files, is_migration_name, next_sequence};
129
+
130
+ #[test]
131
+ fn create_name_and_sequence() {
132
+ assert!(is_migration_name("add_users"));
133
+ assert!(!is_migration_name("AddUsers"));
134
+ assert!(!is_migration_name("1bad"));
135
+ assert_eq!(next_sequence([] as [&str; 0]), 1);
136
+ assert_eq!(next_sequence(["0001_init_up.sql"]), 2);
137
+ assert_eq!(
138
+ next_sequence(["20240101120000_legacy_up.sql", "0003_later_up.sql"]),
139
+ 4
140
+ );
141
+ }
142
+
143
+ #[test]
144
+ fn missing_migrations_directory_is_the_shared_error() {
145
+ let err = discover_up_files("/nope/migraters-missing-dir")
146
+ .err()
147
+ .unwrap()
148
+ .to_string();
149
+ assert!(err.contains("migrate-path is not a directory"));
150
+ }
151
+ }
@@ -0,0 +1,57 @@
1
+ pub fn strip_key(raw: &str) -> String {
2
+ raw.chars()
3
+ .filter(|c| !matches!(c, ' ' | '_' | '-'))
4
+ .flat_map(|c| c.to_lowercase())
5
+ .collect()
6
+ }
7
+
8
+ pub fn normalize_provider(raw: &str) -> Option<&'static str> {
9
+ let key = strip_key(raw);
10
+ if let Some(name) = crate::cli_spec::providers()
11
+ .iter()
12
+ .find(|p| strip_key(p) == key)
13
+ {
14
+ return Some(name.as_str());
15
+ }
16
+ crate::cli_spec::provider_aliases()
17
+ .get(&key)
18
+ .map(|s| s.as_str())
19
+ }
20
+
21
+ #[cfg(test)]
22
+ mod tests {
23
+ use super::normalize_provider;
24
+ use crate::abstractions::all;
25
+ use crate::cli_spec;
26
+
27
+ #[test]
28
+ fn registry_matches_cli_yaml() {
29
+ let names: Vec<&str> = all().iter().map(|d| d.name()).collect();
30
+ let expected: Vec<&str> = cli_spec::providers().iter().map(|s| s.as_str()).collect();
31
+ for name in &names {
32
+ assert!(expected.contains(name), "{name}");
33
+ }
34
+ if names.len() == expected.len() {
35
+ let mut sorted = expected.clone();
36
+ sorted.sort();
37
+ assert_eq!(names, sorted);
38
+ }
39
+ for (alias, canonical) in cli_spec::provider_aliases() {
40
+ assert_eq!(
41
+ normalize_provider(alias),
42
+ Some(canonical.as_str()),
43
+ "{alias}"
44
+ );
45
+ }
46
+ assert_eq!(normalize_provider("MS-SQL-Server"), Some("sqlserver"));
47
+ assert_eq!(normalize_provider("nope"), None);
48
+ for dialect in all() {
49
+ assert_eq!(
50
+ dialect
51
+ .connection_env_vars()
52
+ .join(cli_spec::env_var_list_separator()),
53
+ crate::cli_spec::join_env_vars(dialect.connection_env_vars())
54
+ );
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,16 @@
1
+ {{usage}}
2
+
3
+ Creates a new <NNNN>_<name>_up.sql + <NNNN>_<name>_down.sql pair scaffolded
4
+ with TODO placeholders. NNNN is one greater than the highest 1-4-digit
5
+ sequence prefix already present in the migrations directory (starts at 0001).
6
+ Legacy timestamp-prefixed filenames are ignored for numbering.
7
+
8
+ --provider Database dialect. Required.
9
+ --name snake_case slug for the new migration. Required. Must
10
+ match /^[a-z][a-z0-9_]*$/.
11
+ --migrations-path Migrations directory (default: ./sql/<dialect>/migrations).
12
+ Created with mkdir -p if it does not exist.
13
+
14
+ Examples:
15
+ {{command}} --provider sqlite --name add_users
16
+ {{command}} --provider postgres --name backfill_email_lower --migrations-path ./db/changes/postgres
@@ -0,0 +1,40 @@
1
+ {{usage}}
2
+
3
+ Rolls back the MOST RECENTLY applied migration (one step). DESTRUCTIVE: refuses
4
+ to proceed unless the operator types confirm on stdin, or passes --confirm.
5
+
6
+ --provider Database dialect. Required.
7
+ --connection Connection string. Required (or set the per-dialect env var below).
8
+ --migrations-path Full path to the migrations directory.
9
+ --migrations-root Root prefix; the script then looks at <migrations-root>/<dialect>/migrations.
10
+ Defaults to 'sql'. Ignored when --migrations-path is also set.
11
+ --confirm Skip the interactive prompt.
12
+
13
+ Examples:
14
+ # sqlite — bare path or sqlite:// URL.
15
+ {{command}} --provider sqlite --connection ./app.sqlite
16
+ {{command}} --provider sqlite --connection sqlite:///absolute/path/app.sqlite
17
+
18
+ # postgres — URL or keyword form.
19
+ {{command}} --provider postgres --connection postgresql://user:pass@host:5432/dbname
20
+
21
+ # mysql — URL form.
22
+ {{command}} --provider mysql --connection mysql://user:pass@host:3306/dbname
23
+
24
+ # sqlserver / oracle — pass a driver-native connection string.
25
+ {{command}} --provider sqlserver --connection "Server=host;Database=dbname;User Id=user;Password=pass;"
26
+ {{command}} --provider oracle --connection "user/pass@host:1521/service"
27
+
28
+ # env-var fallback when --connection is omitted:
29
+ SQLITE_PATH=./app.sqlite {{command}} --provider sqlite
30
+ DATABASE_URL=postgresql://... {{command}} --provider postgres
31
+
32
+ # custom migrations layout (default looks under sql/<dialect>/migrations):
33
+ {{command}} --provider sqlite --connection ./app.sqlite --migrations-path ./db/changes/sqlite
34
+
35
+ Per-dialect env vars consulted when --connection is omitted:
36
+ sqlite SQLITE_PATH, DB_PATH
37
+ postgres PG_CONNECTION_STRING, DATABASE_URL
38
+ mysql MYSQL_URL, DATABASE_URL
39
+ sqlserver MSSQL_URL, DATABASE_URL
40
+ oracle ORACLE_CONNECT_STRING, DATABASE_URL
@@ -0,0 +1,15 @@
1
+ {{usage}}
2
+
3
+ Selects the programming language and dialects this tree will compile and
4
+ install. --language is required. Repeat --dialect once per provider.
5
+ Re-running replaces the previous language and dialect set. --all restores
6
+ every dialect. Does not take --connection.
7
+
8
+ --language Programming language runner to install and build. typescript, csharp, or rust.
9
+ --dialect Dialect to enable. Repeat for each dialect. Aliases from this file apply.
10
+ --all Enable every dialect. Restores the committed full-provider set.
11
+
12
+ Examples:
13
+ {{command}} --language typescript --dialect sqlite --dialect postgres
14
+ {{command}} --language csharp --dialect sqlite
15
+ {{command}} --language rust --all
@@ -0,0 +1,45 @@
1
+ {{usage}}
2
+
3
+ Creates the bookkeeping tables (migrates, migrate_logs) for the chosen dialect
4
+ and the migrations directory (mkdir -p). Idempotent — re-running against an
5
+ already-setup database is a no-op. For sqlite, also mkdir -p of the parent
6
+ directory of --connection so a fresh-tree path like ./.test/foo.sqlite works.
7
+ Pass --create-database to create the database named in --connection if it
8
+ does not exist (postgres, mysql, sqlserver). sqlite creates the file on
9
+ connect. oracle uses the existing service.
10
+
11
+ --provider Database dialect. Required.
12
+ --connection Connection string. Required (or set the per-dialect env var below).
13
+ --migrations-path Migrations directory (default: ./sql/<dialect>/migrations).
14
+ --and-up After setup, immediately invoke migrate-up so the chain is applied in one step.
15
+ --create-database Create the database named in --connection if it does not exist.
16
+
17
+ Examples:
18
+ # sqlite — bare path or sqlite:// URL; both create a file on disk.
19
+ {{command}} --provider sqlite --connection ./app.sqlite
20
+ {{command}} --provider sqlite --connection sqlite:///absolute/path/app.sqlite
21
+
22
+ # postgres — URL or keyword form.
23
+ {{command}} --provider postgres --connection postgresql://user:pass@host:5432/dbname
24
+
25
+ # mysql — URL form.
26
+ {{command}} --provider mysql --connection mysql://user:pass@host:3306/dbname
27
+
28
+ # sqlserver / oracle — pass a driver-native connection string.
29
+ {{command}} --provider sqlserver --connection "Server=host;Database=dbname;User Id=user;Password=pass;"
30
+ {{command}} --provider oracle --connection "user/pass@host:1521/service"
31
+
32
+ # env-var fallback when --connection is omitted:
33
+ SQLITE_PATH=./app.sqlite {{command}} --provider sqlite
34
+ DATABASE_URL=postgresql://... {{command}} --provider postgres
35
+ DATABASE_URL=mysql://... {{command}} --provider mysql
36
+
37
+ # explicit in-memory sqlite:
38
+ {{command}} --provider sqlite --connection :memory:
39
+
40
+ Per-dialect env vars consulted when --connection is omitted:
41
+ sqlite SQLITE_PATH, DB_PATH
42
+ postgres PG_CONNECTION_STRING, DATABASE_URL
43
+ mysql MYSQL_URL, DATABASE_URL
44
+ sqlserver MSSQL_URL, DATABASE_URL
45
+ oracle ORACLE_CONNECT_STRING, DATABASE_URL
@@ -0,0 +1,43 @@
1
+ {{usage}}
2
+
3
+ Applies ALL pending migrations in sequence, each in its own transaction.
4
+
5
+ --provider Database dialect. Required.
6
+ --connection Connection string. Required (or set the per-dialect env var below).
7
+ --migrations-path Full path to the migrations directory (e.g. sql/sqlite/migrations).
8
+ --migrations-root Root prefix; the script then looks at <migrations-root>/<dialect>/migrations.
9
+ Defaults to 'sql'. Ignored when --migrations-path is also set.
10
+ --one Apply only the next pending migration, then exit. Default is to apply all pending migrations.
11
+
12
+ Examples:
13
+ # sqlite — bare path or sqlite:// URL; both create a file on disk.
14
+ {{command}} --provider sqlite --connection ./app.sqlite
15
+ {{command}} --provider sqlite --connection sqlite:///absolute/path/app.sqlite
16
+
17
+ # postgres — URL or keyword form.
18
+ {{command}} --provider postgres --connection postgresql://user:pass@host:5432/dbname
19
+
20
+ # mysql — URL form.
21
+ {{command}} --provider mysql --connection mysql://user:pass@host:3306/dbname
22
+
23
+ # sqlserver / oracle — pass a driver-native connection string.
24
+ {{command}} --provider sqlserver --connection "Server=host;Database=dbname;User Id=user;Password=pass;"
25
+ {{command}} --provider oracle --connection "user/pass@host:1521/service"
26
+
27
+ # env-var fallback when --connection is omitted:
28
+ SQLITE_PATH=./app.sqlite {{command}} --provider sqlite
29
+ DATABASE_URL=postgresql://... {{command}} --provider postgres
30
+
31
+ # custom migrations layout (default looks under sql/<dialect>/migrations):
32
+ {{command}} --provider sqlite --connection ./app.sqlite --migrations-path ./db/changes/sqlite
33
+ {{command}} --provider sqlite --connection ./app.sqlite --migrations-root ./db/changes
34
+
35
+ # one-shot: apply the next pending migration only, then exit.
36
+ {{command}} --provider sqlite --connection ./app.sqlite --one
37
+
38
+ Per-dialect env vars consulted when --connection is omitted:
39
+ sqlite SQLITE_PATH, DB_PATH
40
+ postgres PG_CONNECTION_STRING, DATABASE_URL
41
+ mysql MYSQL_URL, DATABASE_URL
42
+ sqlserver MSSQL_URL, DATABASE_URL
43
+ oracle ORACLE_CONNECT_STRING, DATABASE_URL
@@ -0,0 +1 @@
1
+ {{name}}: stored {{stored}}..., current {{current}}...
@@ -0,0 +1,11 @@
1
+ Migration checksum drift detected — the migration file changed AFTER it was applied:
2
+ {{lines}}
3
+
4
+ The DB and source disagree about the schema you're running. Either the codegen
5
+ regenerated an already-applied migration in place (the canonical bug — emit a NEW
6
+ migration file instead), or the migrate state was hand-edited.
7
+
8
+ Recovery options:
9
+ 1. Emit a new migration that brings the DB up to the current schema, then deploy.
10
+ 2. For showcase/dev DBs with no real data: wipe the DB file and let migrate:up re-run from scratch.
11
+ 3. If you've verified the DB matches the new file: MIGRATE_ALLOW_CHECKSUM_DRIFT=1 npm run migrate:up
@@ -0,0 +1 @@
1
+ --confirm value ({{supplied}}) does not match the token printed above ({{token}}). Aborting.
@@ -0,0 +1 @@
1
+ Type confirm to roll back:
@@ -0,0 +1 @@
1
+ failed to read confirmation from stdin — aborting.
@@ -0,0 +1 @@
1
+ Confirmation did not match — aborting.
@@ -0,0 +1 @@
1
+ migrate-down requires interactive confirmation when stdin is not a TTY — pass --confirm to proceed.
@@ -0,0 +1,2 @@
1
+
2
+ ⚠ DESTRUCTIVE: this rolls back the most recently applied migration on {{dialect}}.
@@ -0,0 +1 @@
1
+ --name must be snake_case: lowercase letter then [a-z0-9_] (got "{{name}}")
@@ -0,0 +1 @@
1
+ migrate-path is not a directory: {{path}}
@@ -0,0 +1 @@
1
+ missing --connection — pass --connection <url> (e.g. ./app.sqlite for sqlite) or set one of: {{envVars}}. Run with --help for examples.
@@ -0,0 +1 @@
1
+ missing --name — pass --name <snake_case_slug>.
@@ -0,0 +1 @@
1
+ missing --name
@@ -0,0 +1 @@
1
+ missing --provider — pass --provider <{{providers}}>. Run with --help for examples.
@@ -0,0 +1 @@
1
+ missing --provider
@@ -0,0 +1 @@
1
+ missing value for {{flag}}
@@ -0,0 +1 @@
1
+ Cannot roll back "{{name}}": no <stem>_down.sql sibling found
@@ -0,0 +1 @@
1
+ Cannot roll back "{{name}}": no rollback_*.sql sibling found
@@ -0,0 +1 @@
1
+ Most recently applied migration is not present under --migrate-path
@@ -0,0 +1 @@
1
+ sqlite file: {{path}} does not exist — run 'migrate-setup --provider sqlite --connection {{path}}' to create it