@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,78 @@
1
+ namespace Deterministic.MigrateRunner;
2
+
3
+ public sealed class SqlDialect : ISqlDialect
4
+ {
5
+ private readonly Func<string, string> _normalize;
6
+ private readonly Func<string, DbConnection> _createConnection;
7
+ private readonly Action<DbCommand, string, object> _addParameter;
8
+ private readonly Func<string, string> _quoteIdent;
9
+ private readonly Func<string, string> _placeholder;
10
+ private readonly Func<string, string?>? _prerequisiteError;
11
+ private readonly Action<string>? _prepareSetup;
12
+ private readonly Func<string, Task>? _createDatabase;
13
+ private readonly Func<int, string> _limitClause;
14
+
15
+ public SqlDialect(
16
+ string name,
17
+ IReadOnlyList<string> connectionEnvironmentVariables,
18
+ bool useTransaction,
19
+ Func<string, string> normalizeConnectionString,
20
+ Func<string, DbConnection> createConnection,
21
+ Action<DbCommand, string, object> addParameter,
22
+ Func<string, string> quoteIdent,
23
+ Func<string, string> placeholder,
24
+ Func<string, string?>? prerequisiteError = null,
25
+ Action<string>? prepareSetup = null,
26
+ Func<string, Task>? createDatabase = null,
27
+ string nowExpr = "CURRENT_TIMESTAMP",
28
+ Func<int, string>? limitClause = null
29
+ )
30
+ {
31
+ Name = name;
32
+ ConnectionEnvironmentVariables = connectionEnvironmentVariables;
33
+ UseTransaction = useTransaction;
34
+ NowExpr = nowExpr;
35
+ _normalize = normalizeConnectionString;
36
+ _createConnection = createConnection;
37
+ _addParameter = addParameter;
38
+ _quoteIdent = quoteIdent;
39
+ _placeholder = placeholder;
40
+ _prerequisiteError = prerequisiteError;
41
+ _prepareSetup = prepareSetup;
42
+ _createDatabase = createDatabase;
43
+ _limitClause = limitClause ?? (n => $"LIMIT {n}");
44
+ }
45
+
46
+ public string Name { get; }
47
+ public IReadOnlyList<string> ConnectionEnvironmentVariables { get; }
48
+ public bool UseTransaction { get; }
49
+ public string NowExpr { get; }
50
+ public string MigratesDdl => SqlTemplates.Read(Name, "migrates");
51
+ public string MigrateLogsDdl => SqlTemplates.Read(Name, "migrate_logs");
52
+ public string SelectAppliedChecksumSql =>
53
+ $"SELECT {_quoteIdent("name")} AS name, {_quoteIdent("checksum")} AS checksum FROM {_quoteIdent("migrates")}";
54
+ public string InsertAppliedSql =>
55
+ $"INSERT INTO {_quoteIdent("migrates")} ({_quoteIdent("name")}, {_quoteIdent("checksum")}) VALUES ({_placeholder("p1")}, {_placeholder("p2")})";
56
+ public string DeleteAppliedSql =>
57
+ $"DELETE FROM {_quoteIdent("migrates")} WHERE {_quoteIdent("name")} = {_placeholder("p1")}";
58
+
59
+ public string LimitClause(int n) => _limitClause(n);
60
+ public string QuoteIdent(string ident) => _quoteIdent(ident);
61
+ public string Placeholder(string name) => _placeholder(name);
62
+ public string NormalizeConnectionString(string connection) => _normalize(connection);
63
+ public DbConnection CreateConnection(string connectionString) => _createConnection(connectionString);
64
+ public void AddParameter(DbCommand command, string name, object value) =>
65
+ _addParameter(command, name, value);
66
+ public string? PrerequisiteError(string connection) => _prerequisiteError?.Invoke(connection);
67
+ public void PrepareSetup(string connection) => _prepareSetup?.Invoke(connection);
68
+ public Task CreateDatabaseIfMissingAsync(string connection) =>
69
+ _createDatabase?.Invoke(connection) ?? Task.CompletedTask;
70
+
71
+ public static void Bind(DbCommand command, string parameterName, object value)
72
+ {
73
+ var p = command.CreateParameter();
74
+ p.ParameterName = parameterName;
75
+ p.Value = value;
76
+ command.Parameters.Add(p);
77
+ }
78
+ }
@@ -0,0 +1,24 @@
1
+ namespace Deterministic.MigrateRunner;
2
+
3
+ internal sealed class SqlDialectFactory(IEnumerable<ISqlDialect> dialects) : ISqlDialectFactory
4
+ {
5
+ private readonly ISqlDialect[] _all =
6
+ [
7
+ .. CliSpec.Providers.Select(name => dialects.FirstOrDefault(d => d.Name == name)).OfType<ISqlDialect>(),
8
+ ];
9
+ private readonly IReadOnlyDictionary<string, ISqlDialect> _byName = dialects.ToDictionary(
10
+ d => d.Name,
11
+ StringComparer.Ordinal
12
+ );
13
+
14
+ public IReadOnlyList<ISqlDialect> All() => _all;
15
+
16
+ public bool TryGet(string name, out ISqlDialect dialect)
17
+ {
18
+ var key = MigrateCli.NormalizeProvider(name);
19
+ if (key is not null && _byName.TryGetValue(key, out dialect!))
20
+ return true;
21
+ dialect = null!;
22
+ return false;
23
+ }
24
+ }
@@ -0,0 +1,14 @@
1
+ <Project Sdk="Microsoft.NET.Sdk">
2
+ <PropertyGroup>
3
+ <TargetFramework>net9.0</TargetFramework>
4
+ <Nullable>enable</Nullable>
5
+ <ImplicitUsings>enable</ImplicitUsings>
6
+ <RootNamespace>Deterministic.MigrateRunner</RootNamespace>
7
+ <AssemblyName>MigrateMysql</AssemblyName>
8
+ <IsPackable>false</IsPackable>
9
+ </PropertyGroup>
10
+ <ItemGroup>
11
+ <ProjectReference Include="..\..\MigrateRunner.Core.csproj" />
12
+ <PackageReference Include="MySqlConnector" Version="2.4.0" />
13
+ </ItemGroup>
14
+ </Project>
@@ -0,0 +1,21 @@
1
+ using MySqlConnector;
2
+
3
+ namespace Deterministic.MigrateRunner;
4
+
5
+ internal static class MysqlCreateDatabase
6
+ {
7
+ public static async Task IfMissingAsync(string connection)
8
+ {
9
+ var normalized = MysqlDialect.Instance.NormalizeConnectionString(connection);
10
+ var b = new MySqlConnectionStringBuilder(normalized);
11
+ if (string.IsNullOrEmpty(b.Database))
12
+ return;
13
+ var name = b.Database;
14
+ b.Database = "";
15
+ await using var conn = new MySqlConnection(b.ConnectionString);
16
+ await conn.OpenAsync().ConfigureAwait(false);
17
+ await using var cmd = conn.CreateCommand();
18
+ cmd.CommandText = $"CREATE DATABASE IF NOT EXISTS `{name.Replace("`", "``")}`";
19
+ await cmd.ExecuteNonQueryAsync().ConfigureAwait(false);
20
+ }
21
+ }
@@ -0,0 +1,44 @@
1
+ using MySqlConnector;
2
+
3
+ namespace Deterministic.MigrateRunner;
4
+
5
+ public static class MysqlDialect
6
+ {
7
+ // MySQL DDL auto-commits, so wrapping apply + catalog write gives no atomicity.
8
+ public static readonly ISqlDialect Instance = new SqlDialect(
9
+ "mysql",
10
+ ["MYSQL_URL", "DATABASE_URL"],
11
+ useTransaction: false,
12
+ NormalizeConnection,
13
+ s => new MySqlConnection(s),
14
+ (cmd, n, v) => SqlDialect.Bind(cmd, $"@{n}", v),
15
+ ident => $"`{ident}`",
16
+ name => $"@{name}",
17
+ createDatabase: MysqlCreateDatabase.IfMissingAsync
18
+ );
19
+
20
+ private static string NormalizeConnection(string connection)
21
+ {
22
+ if (ConnectionStringUrl.TryUri(connection, "mysql") is not { } url)
23
+ return connection;
24
+ var uri = new Uri(url);
25
+ var b = new MySqlConnectionStringBuilder
26
+ {
27
+ Server = uri.Host,
28
+ Port = (uint)(uri.Port > 0 ? uri.Port : 3306),
29
+ };
30
+ ConnectionStringUrl.ApplyUriParts(
31
+ uri,
32
+ (u, p) =>
33
+ {
34
+ if (u is not null)
35
+ b.UserID = u;
36
+ if (p is not null)
37
+ b.Password = p;
38
+ },
39
+ db => b.Database = db,
40
+ (k, v) => b[k] = v
41
+ );
42
+ return b.ConnectionString;
43
+ }
44
+ }
@@ -0,0 +1,213 @@
1
+ {
2
+ "runtimeTarget": {
3
+ "name": ".NETCoreApp,Version=v9.0",
4
+ "signature": ""
5
+ },
6
+ "compilationOptions": {},
7
+ "targets": {
8
+ ".NETCoreApp,Version=v9.0": {
9
+ "MigrateMysql/1.0.0": {
10
+ "dependencies": {
11
+ "MigrateCore": "1.0.0",
12
+ "MySqlConnector": "2.4.0",
13
+ "MigrateCore.Reference": "1.0.0.0"
14
+ },
15
+ "runtime": {
16
+ "MigrateMysql.dll": {}
17
+ }
18
+ },
19
+ "DotNetEnv/3.2.0": {
20
+ "dependencies": {
21
+ "Microsoft.Extensions.Configuration": "1.1.2",
22
+ "Microsoft.Extensions.Configuration.Abstractions": "1.1.2",
23
+ "Superpower": "3.0.0"
24
+ },
25
+ "runtime": {
26
+ "lib/netstandard2.0/DotNetEnv.dll": {
27
+ "assemblyVersion": "3.2.0.0",
28
+ "fileVersion": "3.2.0.0"
29
+ }
30
+ }
31
+ },
32
+ "Microsoft.Extensions.Configuration/1.1.2": {
33
+ "dependencies": {
34
+ "Microsoft.Extensions.Configuration.Abstractions": "1.1.2"
35
+ },
36
+ "runtime": {
37
+ "lib/netstandard1.1/Microsoft.Extensions.Configuration.dll": {
38
+ "assemblyVersion": "1.1.2.0",
39
+ "fileVersion": "1.1.2.30427"
40
+ }
41
+ }
42
+ },
43
+ "Microsoft.Extensions.Configuration.Abstractions/1.1.2": {
44
+ "dependencies": {
45
+ "Microsoft.Extensions.Primitives": "1.1.1"
46
+ },
47
+ "runtime": {
48
+ "lib/netstandard1.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
49
+ "assemblyVersion": "1.1.2.0",
50
+ "fileVersion": "1.1.2.30427"
51
+ }
52
+ }
53
+ },
54
+ "Microsoft.Extensions.DependencyInjection/9.0.0": {
55
+ "dependencies": {
56
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0"
57
+ },
58
+ "runtime": {
59
+ "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
60
+ "assemblyVersion": "9.0.0.0",
61
+ "fileVersion": "9.0.24.52809"
62
+ }
63
+ }
64
+ },
65
+ "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": {
66
+ "runtime": {
67
+ "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
68
+ "assemblyVersion": "9.0.0.0",
69
+ "fileVersion": "9.0.24.52809"
70
+ }
71
+ }
72
+ },
73
+ "Microsoft.Extensions.Logging.Abstractions/8.0.2": {
74
+ "dependencies": {
75
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0"
76
+ },
77
+ "runtime": {
78
+ "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
79
+ "assemblyVersion": "8.0.0.0",
80
+ "fileVersion": "8.0.1024.46610"
81
+ }
82
+ }
83
+ },
84
+ "Microsoft.Extensions.Primitives/1.1.1": {
85
+ "runtime": {
86
+ "lib/netstandard1.0/Microsoft.Extensions.Primitives.dll": {
87
+ "assemblyVersion": "1.1.1.0",
88
+ "fileVersion": "1.1.1.30427"
89
+ }
90
+ }
91
+ },
92
+ "MySqlConnector/2.4.0": {
93
+ "dependencies": {
94
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
95
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.2"
96
+ },
97
+ "runtime": {
98
+ "lib/net9.0/MySqlConnector.dll": {
99
+ "assemblyVersion": "2.0.0.0",
100
+ "fileVersion": "2.4.0.0"
101
+ }
102
+ }
103
+ },
104
+ "Superpower/3.0.0": {
105
+ "runtime": {
106
+ "lib/net5.0/Superpower.dll": {
107
+ "assemblyVersion": "1.0.0.0",
108
+ "fileVersion": "3.0.0.0"
109
+ }
110
+ }
111
+ },
112
+ "MigrateCore/1.0.0": {
113
+ "dependencies": {
114
+ "DotNetEnv": "3.2.0",
115
+ "Microsoft.Extensions.DependencyInjection": "9.0.0"
116
+ },
117
+ "runtime": {
118
+ "MigrateCore.dll": {
119
+ "fileVersion": "0.0.0.0"
120
+ }
121
+ }
122
+ },
123
+ "MigrateCore.Reference/1.0.0.0": {
124
+ "runtime": {
125
+ "MigrateCore.dll": {
126
+ "assemblyVersion": "1.0.0.0",
127
+ "fileVersion": "1.0.0.0"
128
+ }
129
+ }
130
+ }
131
+ }
132
+ },
133
+ "libraries": {
134
+ "MigrateMysql/1.0.0": {
135
+ "type": "project",
136
+ "serviceable": false,
137
+ "sha512": ""
138
+ },
139
+ "DotNetEnv/3.2.0": {
140
+ "type": "package",
141
+ "serviceable": true,
142
+ "sha512": "sha512-2q+PD+aJcRW9QuRcIv4F8WbvEDxI6cwxzZJec2i45cBY4cAKCAoW4ZPkApJ7H82wr6Yfmxx/0kb1nLnRmZrGZA==",
143
+ "path": "dotnetenv/3.2.0",
144
+ "hashPath": "dotnetenv.3.2.0.nupkg.sha512"
145
+ },
146
+ "Microsoft.Extensions.Configuration/1.1.2": {
147
+ "type": "package",
148
+ "serviceable": true,
149
+ "sha512": "sha512-eK5BHx/pHLGGO/WDo7CS070MGgx3N7B/ORO/oKeS0qgCyv+ZAR47YWKXmG5aF+lIrAJd3uJjMTdTKgXTU2UDWw==",
150
+ "path": "microsoft.extensions.configuration/1.1.2",
151
+ "hashPath": "microsoft.extensions.configuration.1.1.2.nupkg.sha512"
152
+ },
153
+ "Microsoft.Extensions.Configuration.Abstractions/1.1.2": {
154
+ "type": "package",
155
+ "serviceable": true,
156
+ "sha512": "sha512-I1BRk2OCjOondHFc0flHFMxLTbsOPQdB0CxexkZOHcAD1oAWC2KcpxvmmQ07kLUcYKbtSdtvPkm7YPdw8bdJ9Q==",
157
+ "path": "microsoft.extensions.configuration.abstractions/1.1.2",
158
+ "hashPath": "microsoft.extensions.configuration.abstractions.1.1.2.nupkg.sha512"
159
+ },
160
+ "Microsoft.Extensions.DependencyInjection/9.0.0": {
161
+ "type": "package",
162
+ "serviceable": true,
163
+ "sha512": "sha512-MCPrg7v3QgNMr0vX4vzRXvkNGgLg8vKWX0nKCWUxu2uPyMsaRgiRc1tHBnbTcfJMhMKj2slE/j2M9oGkd25DNw==",
164
+ "path": "microsoft.extensions.dependencyinjection/9.0.0",
165
+ "hashPath": "microsoft.extensions.dependencyinjection.9.0.0.nupkg.sha512"
166
+ },
167
+ "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": {
168
+ "type": "package",
169
+ "serviceable": true,
170
+ "sha512": "sha512-+6f2qv2a3dLwd5w6JanPIPs47CxRbnk+ZocMJUhv9NxP88VlOcJYZs9jY+MYSjxvady08bUZn6qgiNh7DadGgg==",
171
+ "path": "microsoft.extensions.dependencyinjection.abstractions/9.0.0",
172
+ "hashPath": "microsoft.extensions.dependencyinjection.abstractions.9.0.0.nupkg.sha512"
173
+ },
174
+ "Microsoft.Extensions.Logging.Abstractions/8.0.2": {
175
+ "type": "package",
176
+ "serviceable": true,
177
+ "sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
178
+ "path": "microsoft.extensions.logging.abstractions/8.0.2",
179
+ "hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
180
+ },
181
+ "Microsoft.Extensions.Primitives/1.1.1": {
182
+ "type": "package",
183
+ "serviceable": true,
184
+ "sha512": "sha512-MrsHOyFpwT+LBzGWp/Oq3pV1Vku8FYE6hgO+2XR0WBRtoI9EaJcpRbtBabS7pXYrkIN1/LOXACpZ9Stqmbrs6A==",
185
+ "path": "microsoft.extensions.primitives/1.1.1",
186
+ "hashPath": "microsoft.extensions.primitives.1.1.1.nupkg.sha512"
187
+ },
188
+ "MySqlConnector/2.4.0": {
189
+ "type": "package",
190
+ "serviceable": true,
191
+ "sha512": "sha512-78M+gVOjbdZEDIyXQqcA7EYlCGS3tpbUELHvn6638A2w0pkPI625ixnzsa5staAd3N9/xFmPJtkKDYwsXpFi/w==",
192
+ "path": "mysqlconnector/2.4.0",
193
+ "hashPath": "mysqlconnector.2.4.0.nupkg.sha512"
194
+ },
195
+ "Superpower/3.0.0": {
196
+ "type": "package",
197
+ "serviceable": true,
198
+ "sha512": "sha512-bjKbAYWePooCAvPxQq+3KnmcLfRggMyRoXmtBMlmCG71bdwBHrO6rmRJ2DRIodg5aztNcxeZXBUVWT+H+MZUhw==",
199
+ "path": "superpower/3.0.0",
200
+ "hashPath": "superpower.3.0.0.nupkg.sha512"
201
+ },
202
+ "MigrateCore/1.0.0": {
203
+ "type": "project",
204
+ "serviceable": false,
205
+ "sha512": ""
206
+ },
207
+ "MigrateCore.Reference/1.0.0.0": {
208
+ "type": "reference",
209
+ "serviceable": false,
210
+ "sha512": ""
211
+ }
212
+ }
213
+ }
@@ -0,0 +1,276 @@
1
+ # Source of truth for migrate command names, argv layout, and --help copy.
2
+ # TypeScript, Rust, and C# parsers must match this file.
3
+ # IMigrater (setup, up, down, create) lives in api.yaml. SQL spelling is a provider detail.
4
+ # Help templates in shared/templates/help are generated:
5
+ # npm run generate:help
6
+ # Usage line for each verb: `Usage: migrate-<verb> ` + args in order.
7
+
8
+ command: migrate-{verb}
9
+
10
+ providers:
11
+ - sqlite
12
+ - postgres
13
+ - mysql
14
+ - sqlserver
15
+ - oracle
16
+
17
+ languages:
18
+ - typescript
19
+ - csharp
20
+ - rust
21
+
22
+ # Lookup: lowercase, strip spaces/underscores/hyphens, then match a provider or alias.
23
+ provider_aliases:
24
+ sqlite3: sqlite
25
+ mariadb: mysql
26
+ postgresql: postgres
27
+ pg: postgres
28
+ mssql: sqlserver
29
+ mssqlserver: sqlserver
30
+ ora: oracle
31
+
32
+ exit_codes:
33
+ success: 0
34
+ usage: 2
35
+ runtime: 1
36
+
37
+ help:
38
+ - -h
39
+ - --help
40
+
41
+ help_stream: stderr
42
+
43
+ # Canonical argv is `--flag value`. `--flag=value` is optional extra syntax.
44
+ aliases:
45
+ --migrate-path: --migrations-path
46
+ --migrate-root: --migrations-root
47
+
48
+ env_var_list_separator: " / "
49
+
50
+ migrations:
51
+ path_flag: --migrations-path
52
+ root_flag: --migrations-root
53
+ root_default: sql
54
+ layout: "<root>/<provider>/migrations"
55
+ discovery: top_level_up_down_pairs
56
+ missing_directory: errors/migrate-path-not-dir
57
+
58
+ create:
59
+ name_pattern: "^[a-z][a-z0-9_]*$"
60
+ sequence_digits: 4
61
+
62
+ checksum:
63
+ algorithm: sha256
64
+ drift_bypass: MIGRATE_ALLOW_CHECKSUM_DRIFT
65
+
66
+ # Documented when a command sets show_connection_env: true.
67
+ connection_environment:
68
+ sqlite: [SQLITE_PATH, DB_PATH]
69
+ postgres: [PG_CONNECTION_STRING, DATABASE_URL]
70
+ mysql: [MYSQL_URL, DATABASE_URL]
71
+ sqlserver: [MSSQL_URL, DATABASE_URL]
72
+ oracle: [ORACLE_CONNECT_STRING, DATABASE_URL]
73
+
74
+ commands:
75
+ - verb: init
76
+ summary: |
77
+ Selects the programming language and dialects this tree will compile and
78
+ install. --language is required. Repeat --dialect once per provider.
79
+ Re-running replaces the previous language and dialect set. --all restores
80
+ every dialect. Does not take --connection.
81
+ examples: |
82
+ {{command}} --language typescript --dialect sqlite --dialect postgres
83
+ {{command}} --language csharp --dialect sqlite
84
+ {{command}} --language rust --all
85
+ args:
86
+ - flag: --language
87
+ placeholder: languages
88
+ required: true
89
+ help: "Programming language runner to install and build. typescript, csharp, or rust."
90
+ - flag: --dialect
91
+ placeholder: providers
92
+ required: false
93
+ help: "Dialect to enable. Repeat for each dialect. Aliases from this file apply."
94
+ - flag: --all
95
+ required: false
96
+ help: "Enable every dialect. Restores the committed full-provider set."
97
+
98
+ - verb: setup
99
+ show_connection_env: true
100
+ summary: |
101
+ Creates the bookkeeping tables (migrates, migrate_logs) for the chosen dialect
102
+ and the migrations directory (mkdir -p). Idempotent — re-running against an
103
+ already-setup database is a no-op. For sqlite, also mkdir -p of the parent
104
+ directory of --connection so a fresh-tree path like ./.test/foo.sqlite works.
105
+ Pass --create-database to create the database named in --connection if it
106
+ does not exist (postgres, mysql, sqlserver). sqlite creates the file on
107
+ connect. oracle uses the existing service.
108
+ examples: |
109
+ # sqlite — bare path or sqlite:// URL; both create a file on disk.
110
+ {{command}} --provider sqlite --connection ./app.sqlite
111
+ {{command}} --provider sqlite --connection sqlite:///absolute/path/app.sqlite
112
+
113
+ # postgres — URL or keyword form.
114
+ {{command}} --provider postgres --connection postgresql://user:pass@host:5432/dbname
115
+
116
+ # mysql — URL form.
117
+ {{command}} --provider mysql --connection mysql://user:pass@host:3306/dbname
118
+
119
+ # sqlserver / oracle — pass a driver-native connection string.
120
+ {{command}} --provider sqlserver --connection "Server=host;Database=dbname;User Id=user;Password=pass;"
121
+ {{command}} --provider oracle --connection "user/pass@host:1521/service"
122
+
123
+ # env-var fallback when --connection is omitted:
124
+ SQLITE_PATH=./app.sqlite {{command}} --provider sqlite
125
+ DATABASE_URL=postgresql://... {{command}} --provider postgres
126
+ DATABASE_URL=mysql://... {{command}} --provider mysql
127
+
128
+ # explicit in-memory sqlite:
129
+ {{command}} --provider sqlite --connection :memory:
130
+ args:
131
+ - flag: --provider
132
+ placeholder: providers
133
+ required: true
134
+ help: "Database dialect. Required."
135
+ - flag: --connection
136
+ placeholder: url
137
+ required: true
138
+ help: "Connection string. Required (or set the per-dialect env var below)."
139
+ - flag: --migrations-path
140
+ placeholder: dir
141
+ required: false
142
+ help: "Migrations directory (default: ./sql/<dialect>/migrations)."
143
+ - flag: --and-up
144
+ required: false
145
+ help: "After setup, immediately invoke migrate-up so the chain is applied in one step."
146
+ - flag: --create-database
147
+ required: false
148
+ help: "Create the database named in --connection if it does not exist."
149
+
150
+ - verb: up
151
+ show_connection_env: true
152
+ summary: |
153
+ Applies ALL pending migrations in sequence, each in its own transaction.
154
+ examples: |
155
+ # sqlite — bare path or sqlite:// URL; both create a file on disk.
156
+ {{command}} --provider sqlite --connection ./app.sqlite
157
+ {{command}} --provider sqlite --connection sqlite:///absolute/path/app.sqlite
158
+
159
+ # postgres — URL or keyword form.
160
+ {{command}} --provider postgres --connection postgresql://user:pass@host:5432/dbname
161
+
162
+ # mysql — URL form.
163
+ {{command}} --provider mysql --connection mysql://user:pass@host:3306/dbname
164
+
165
+ # sqlserver / oracle — pass a driver-native connection string.
166
+ {{command}} --provider sqlserver --connection "Server=host;Database=dbname;User Id=user;Password=pass;"
167
+ {{command}} --provider oracle --connection "user/pass@host:1521/service"
168
+
169
+ # env-var fallback when --connection is omitted:
170
+ SQLITE_PATH=./app.sqlite {{command}} --provider sqlite
171
+ DATABASE_URL=postgresql://... {{command}} --provider postgres
172
+
173
+ # custom migrations layout (default looks under sql/<dialect>/migrations):
174
+ {{command}} --provider sqlite --connection ./app.sqlite --migrations-path ./db/changes/sqlite
175
+ {{command}} --provider sqlite --connection ./app.sqlite --migrations-root ./db/changes
176
+
177
+ # one-shot: apply the next pending migration only, then exit.
178
+ {{command}} --provider sqlite --connection ./app.sqlite --one
179
+ args:
180
+ - flag: --provider
181
+ placeholder: providers
182
+ required: true
183
+ help: "Database dialect. Required."
184
+ - flag: --connection
185
+ placeholder: url
186
+ required: true
187
+ help: "Connection string. Required (or set the per-dialect env var below)."
188
+ - flag: --migrations-path
189
+ placeholder: dir
190
+ required: false
191
+ help: "Full path to the migrations directory (e.g. sql/sqlite/migrations)."
192
+ - flag: --migrations-root
193
+ placeholder: dir
194
+ required: false
195
+ help: |
196
+ Root prefix; the script then looks at <migrations-root>/<dialect>/migrations.
197
+ Defaults to 'sql'. Ignored when --migrations-path is also set.
198
+ - flag: --one
199
+ required: false
200
+ help: "Apply only the next pending migration, then exit. Default is to apply all pending migrations."
201
+
202
+ - verb: down
203
+ show_connection_env: true
204
+ summary: |
205
+ Rolls back the MOST RECENTLY applied migration (one step). DESTRUCTIVE: refuses
206
+ to proceed unless the operator types confirm on stdin, or passes --confirm.
207
+ examples: |
208
+ # sqlite — bare path or sqlite:// URL.
209
+ {{command}} --provider sqlite --connection ./app.sqlite
210
+ {{command}} --provider sqlite --connection sqlite:///absolute/path/app.sqlite
211
+
212
+ # postgres — URL or keyword form.
213
+ {{command}} --provider postgres --connection postgresql://user:pass@host:5432/dbname
214
+
215
+ # mysql — URL form.
216
+ {{command}} --provider mysql --connection mysql://user:pass@host:3306/dbname
217
+
218
+ # sqlserver / oracle — pass a driver-native connection string.
219
+ {{command}} --provider sqlserver --connection "Server=host;Database=dbname;User Id=user;Password=pass;"
220
+ {{command}} --provider oracle --connection "user/pass@host:1521/service"
221
+
222
+ # env-var fallback when --connection is omitted:
223
+ SQLITE_PATH=./app.sqlite {{command}} --provider sqlite
224
+ DATABASE_URL=postgresql://... {{command}} --provider postgres
225
+
226
+ # custom migrations layout (default looks under sql/<dialect>/migrations):
227
+ {{command}} --provider sqlite --connection ./app.sqlite --migrations-path ./db/changes/sqlite
228
+ args:
229
+ - flag: --provider
230
+ placeholder: providers
231
+ required: true
232
+ help: "Database dialect. Required."
233
+ - flag: --connection
234
+ placeholder: url
235
+ required: true
236
+ help: "Connection string. Required (or set the per-dialect env var below)."
237
+ - flag: --migrations-path
238
+ placeholder: dir
239
+ required: false
240
+ help: "Full path to the migrations directory."
241
+ - flag: --migrations-root
242
+ placeholder: dir
243
+ required: false
244
+ help: |
245
+ Root prefix; the script then looks at <migrations-root>/<dialect>/migrations.
246
+ Defaults to 'sql'. Ignored when --migrations-path is also set.
247
+ - flag: --confirm
248
+ required: false
249
+ help: Skip the interactive prompt.
250
+
251
+ - verb: create
252
+ summary: |
253
+ Creates a new <NNNN>_<name>_up.sql + <NNNN>_<name>_down.sql pair scaffolded
254
+ with TODO placeholders. NNNN is one greater than the highest 1-4-digit
255
+ sequence prefix already present in the migrations directory (starts at 0001).
256
+ Legacy timestamp-prefixed filenames are ignored for numbering.
257
+ examples: |
258
+ {{command}} --provider sqlite --name add_users
259
+ {{command}} --provider postgres --name backfill_email_lower --migrations-path ./db/changes/postgres
260
+ args:
261
+ - flag: --provider
262
+ placeholder: providers
263
+ required: true
264
+ help: "Database dialect. Required."
265
+ - flag: --name
266
+ placeholder: snake_case_slug
267
+ required: true
268
+ help: |
269
+ snake_case slug for the new migration. Required. Must
270
+ match /^[a-z][a-z0-9_]*$/.
271
+ - flag: --migrations-path
272
+ placeholder: dir
273
+ required: false
274
+ help: |
275
+ Migrations directory (default: ./sql/<dialect>/migrations).
276
+ Created with mkdir -p if it does not exist.