@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,245 @@
1
+ use std::collections::HashMap;
2
+ use std::future::Future;
3
+ use std::pin::Pin;
4
+ use std::sync::Mutex as StdMutex;
5
+
6
+ use async_trait::async_trait;
7
+ use migraters_api::{catalog_name, BoxError, DialectPlugin, MigrationSession, SqlDialect};
8
+ use oracle::Connection as OracleConn;
9
+
10
+ pub struct OracleDialect;
11
+
12
+ pub static ORACLE: OracleDialect = OracleDialect;
13
+
14
+ inventory::submit! {
15
+ DialectPlugin { dialect: &ORACLE }
16
+ }
17
+
18
+ pub fn parse_oracle_connection(connection: &str) -> Result<(String, String, String), String> {
19
+ let Some((user, rest)) = connection.split_once('/') else {
20
+ return Err("Oracle connection must look like user/password@connectString".into());
21
+ };
22
+ let Some((password, connect_string)) = rest.split_once('@') else {
23
+ return Err("Oracle connection must look like user/password@connectString".into());
24
+ };
25
+ if user.is_empty() || password.is_empty() || connect_string.is_empty() {
26
+ return Err("Oracle connection must look like user/password@connectString".into());
27
+ }
28
+ Ok((
29
+ user.to_string(),
30
+ password.to_string(),
31
+ connect_string.to_string(),
32
+ ))
33
+ }
34
+
35
+ fn init_oracle_client() -> Result<(), BoxError> {
36
+ let Ok(dir) = std::env::var("ORACLE_CLIENT_LIB_DIR") else {
37
+ return Ok(());
38
+ };
39
+ if dir.is_empty() {
40
+ return Ok(());
41
+ }
42
+ oracle::InitParams::new()
43
+ .oracle_client_lib_dir(dir)?
44
+ .init()?;
45
+ Ok(())
46
+ }
47
+
48
+ impl SqlDialect for OracleDialect {
49
+ fn name(&self) -> &'static str {
50
+ "oracle"
51
+ }
52
+ fn connection_env_vars(&self) -> &'static [&'static str] {
53
+ &["ORACLE_CONNECT_STRING", "DATABASE_URL"]
54
+ }
55
+ fn migrates_ddl(&self) -> &'static str {
56
+ include_str!("../../../../shared/templates/sql/oracle/migrates.sql")
57
+ }
58
+ fn migrate_logs_ddl(&self) -> &'static str {
59
+ include_str!("../../../../shared/templates/sql/oracle/migrate_logs.sql")
60
+ }
61
+ fn use_transaction(&self) -> bool {
62
+ true
63
+ }
64
+ fn insert_applied_sql(&self) -> &'static str {
65
+ r#"INSERT INTO "migrates" ("name", "checksum") VALUES (:1, :2)"#
66
+ }
67
+ fn delete_applied_sql(&self) -> &'static str {
68
+ r#"DELETE FROM "migrates" WHERE "name" = :1"#
69
+ }
70
+ fn normalize_connection(&self, connection: &str) -> String {
71
+ connection.to_string()
72
+ }
73
+ fn prerequisite_error(&self, _connection: &str) -> Option<String> {
74
+ None
75
+ }
76
+ fn prepare_setup(&self, _connection: &str) -> std::io::Result<()> {
77
+ Ok(())
78
+ }
79
+ fn limit_clause(&self, n: usize) -> String {
80
+ format!("FETCH FIRST {n} ROWS ONLY")
81
+ }
82
+ fn connect<'a>(
83
+ &'a self,
84
+ connection: &'a str,
85
+ ) -> Pin<Box<dyn Future<Output = Result<Box<dyn MigrationSession>, BoxError>> + Send + 'a>> {
86
+ Box::pin(async move {
87
+ let url = self.normalize_connection(connection);
88
+ let (user, password, connect_string) = parse_oracle_connection(&url)?;
89
+ init_oracle_client()?;
90
+ let conn = tokio::task::spawn_blocking(move || {
91
+ OracleConn::connect(user, password, connect_string)
92
+ })
93
+ .await??;
94
+ Ok(Box::new(OracleSession {
95
+ conn: StdMutex::new(conn),
96
+ }) as Box<dyn MigrationSession>)
97
+ })
98
+ }
99
+ }
100
+
101
+ struct OracleSession {
102
+ conn: StdMutex<OracleConn>,
103
+ }
104
+
105
+ #[async_trait]
106
+ impl MigrationSession for OracleSession {
107
+ async fn execute(&self, sql: &str) -> Result<(), BoxError> {
108
+ let sql = sql.to_string();
109
+ let conn = self.conn.lock().map_err(|e| e.to_string())?;
110
+ conn.execute(&sql, &[])?;
111
+ Ok(())
112
+ }
113
+
114
+ async fn fetch_applied(&self, sql: &str) -> Result<HashMap<String, Option<String>>, BoxError> {
115
+ let mut out = HashMap::new();
116
+ let sql = sql.to_string();
117
+ let conn = self.conn.lock().map_err(|e| e.to_string())?;
118
+ let rows = conn.query(&sql, &[])?;
119
+ for row in rows {
120
+ let row = row?;
121
+ let name: String = row.get(0)?;
122
+ let checksum: Option<String> = row.get(1).ok();
123
+ out.insert(catalog_name(&name).to_string(), checksum);
124
+ }
125
+ Ok(out)
126
+ }
127
+
128
+ async fn apply_in_transaction(
129
+ &self,
130
+ stmts: &[String],
131
+ catalog_sql: &str,
132
+ p1: &str,
133
+ p2: Option<&str>,
134
+ ) -> Result<(), BoxError> {
135
+ let conn = self.conn.lock().map_err(|e| e.to_string())?;
136
+ let result: Result<(), BoxError> = (|| {
137
+ for stmt in stmts {
138
+ conn.execute(stmt, &[])?;
139
+ }
140
+ oracle_catalog(&conn, catalog_sql, p1, p2)?;
141
+ conn.commit()?;
142
+ Ok(())
143
+ })();
144
+ if result.is_err() {
145
+ let _ = conn.rollback();
146
+ }
147
+ result
148
+ }
149
+
150
+ async fn catalog_write(
151
+ &self,
152
+ catalog_sql: &str,
153
+ p1: &str,
154
+ p2: Option<&str>,
155
+ ) -> Result<(), BoxError> {
156
+ let conn = self.conn.lock().map_err(|e| e.to_string())?;
157
+ oracle_catalog(&conn, catalog_sql, p1, p2)
158
+ }
159
+
160
+ async fn fetch_id(&self, sql: &str, p1: &str, p2: &str) -> Result<i64, BoxError> {
161
+ let sql = sql.to_string();
162
+ let p1 = p1.to_string();
163
+ let p2 = p2.to_string();
164
+ let conn = self.conn.lock().map_err(|e| e.to_string())?;
165
+ let row = conn.query_row(&sql, &[&p1, &p2])?;
166
+ Ok(row.get::<usize, i64>(0)?)
167
+ }
168
+
169
+ async fn update_log_exec(
170
+ &self,
171
+ sql: &str,
172
+ status: &str,
173
+ duration_ms: i64,
174
+ error_message: Option<&str>,
175
+ id: i64,
176
+ ) -> Result<(), BoxError> {
177
+ let sql = sql.to_string();
178
+ let status = status.to_string();
179
+ let err = error_message.map(str::to_string);
180
+ let conn = self.conn.lock().map_err(|e| e.to_string())?;
181
+ conn.execute(&sql, &[&status, &duration_ms, &err, &id])?;
182
+ Ok(())
183
+ }
184
+ }
185
+
186
+ fn oracle_catalog(
187
+ conn: &OracleConn,
188
+ sql: &str,
189
+ p1: &str,
190
+ p2: Option<&str>,
191
+ ) -> Result<(), BoxError> {
192
+ if let Some(p2) = p2 {
193
+ conn.execute(sql, &[&p1, &p2])?;
194
+ } else {
195
+ conn.execute(sql, &[&p1])?;
196
+ }
197
+ Ok(())
198
+ }
199
+
200
+ #[cfg(test)]
201
+ mod tests {
202
+ use super::{parse_oracle_connection, OracleDialect};
203
+ use migraters_api::{assert_dialect_surface, SqlDialect};
204
+
205
+ #[test]
206
+ fn surface() {
207
+ let d = OracleDialect;
208
+ assert_dialect_surface(&d);
209
+ assert_eq!(d.name(), "oracle");
210
+ assert_eq!(
211
+ d.connection_env_vars(),
212
+ &["ORACLE_CONNECT_STRING", "DATABASE_URL"]
213
+ );
214
+ assert!(d.use_transaction());
215
+ assert_eq!(d.normalize_connection("u/p@c"), "u/p@c");
216
+ assert!(d.prerequisite_error("u/p@c").is_none());
217
+ d.prepare_setup("u/p@c").unwrap();
218
+ assert!(d.insert_applied_sql().contains(":1"));
219
+ assert!(d.delete_applied_sql().contains(":1"));
220
+ assert_eq!(d.quote_ident("t"), "\"t\"");
221
+ assert_eq!(d.now_expr(), "CURRENT_TIMESTAMP");
222
+ assert_eq!(d.limit_clause(5), "FETCH FIRST 5 ROWS ONLY");
223
+ }
224
+
225
+ #[test]
226
+ fn parse_oracle_connection_accepts_user_password_connect() {
227
+ assert_eq!(
228
+ parse_oracle_connection("scott/tiger@localhost/orcl").unwrap(),
229
+ (
230
+ "scott".to_string(),
231
+ "tiger".to_string(),
232
+ "localhost/orcl".to_string()
233
+ )
234
+ );
235
+ }
236
+
237
+ #[test]
238
+ fn parse_oracle_connection_rejects_malformed() {
239
+ let msg = "Oracle connection must look like user/password@connectString";
240
+ for bad in ["not-a-dsn", "user/nohost", "/p@c", "u/@c", "u/p@"] {
241
+ let err = parse_oracle_connection(bad).unwrap_err();
242
+ assert_eq!(err, msg, "{bad}");
243
+ }
244
+ }
245
+ }
@@ -0,0 +1,11 @@
1
+ [package]
2
+ name = "migraters-postgres"
3
+ version = "0.0.1"
4
+ edition = "2021"
5
+
6
+ [dependencies]
7
+ async-trait = "0.1"
8
+ inventory = "0.3"
9
+ migraters-api = { path = "../../api" }
10
+ sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "postgres"] }
11
+ tokio = { version = "1", features = ["net", "rt"] }
@@ -0,0 +1,235 @@
1
+ use std::collections::HashMap;
2
+ use std::future::Future;
3
+ use std::pin::Pin;
4
+
5
+ use async_trait::async_trait;
6
+ use migraters_api::{catalog_name, BoxError, DialectPlugin, MigrationSession, SqlDialect};
7
+ use sqlx::postgres::PgPool;
8
+ use sqlx::Row;
9
+
10
+ pub struct PostgresDialect;
11
+
12
+ pub static POSTGRES: PostgresDialect = PostgresDialect;
13
+
14
+ inventory::submit! {
15
+ DialectPlugin { dialect: &POSTGRES }
16
+ }
17
+
18
+ impl SqlDialect for PostgresDialect {
19
+ fn name(&self) -> &'static str {
20
+ "postgres"
21
+ }
22
+ fn connection_env_vars(&self) -> &'static [&'static str] {
23
+ &["PG_CONNECTION_STRING", "DATABASE_URL"]
24
+ }
25
+ fn migrates_ddl(&self) -> &'static str {
26
+ include_str!("../../../../shared/templates/sql/postgres/migrates.sql")
27
+ }
28
+ fn migrate_logs_ddl(&self) -> &'static str {
29
+ include_str!("../../../../shared/templates/sql/postgres/migrate_logs.sql")
30
+ }
31
+ fn use_transaction(&self) -> bool {
32
+ true
33
+ }
34
+ fn insert_applied_sql(&self) -> &'static str {
35
+ r#"INSERT INTO "migrates" ("name", "checksum") VALUES ($1, $2)"#
36
+ }
37
+ fn delete_applied_sql(&self) -> &'static str {
38
+ r#"DELETE FROM "migrates" WHERE "name" = $1"#
39
+ }
40
+ fn normalize_connection(&self, connection: &str) -> String {
41
+ connection.to_string()
42
+ }
43
+ fn prerequisite_error(&self, _connection: &str) -> Option<String> {
44
+ None
45
+ }
46
+ fn prepare_setup(&self, _connection: &str) -> std::io::Result<()> {
47
+ Ok(())
48
+ }
49
+ fn connect<'a>(
50
+ &'a self,
51
+ connection: &'a str,
52
+ ) -> Pin<Box<dyn Future<Output = Result<Box<dyn MigrationSession>, BoxError>> + Send + 'a>> {
53
+ Box::pin(async move {
54
+ let url = self.normalize_connection(connection);
55
+ let pool = PgPool::connect(&url).await?;
56
+ Ok(Box::new(PostgresSession { pool }) as Box<dyn MigrationSession>)
57
+ })
58
+ }
59
+ fn create_database<'a>(
60
+ &'a self,
61
+ connection: &'a str,
62
+ ) -> Pin<Box<dyn Future<Output = Result<(), BoxError>> + Send + 'a>> {
63
+ Box::pin(async move { create_database(connection).await })
64
+ }
65
+ }
66
+
67
+ struct PostgresSession {
68
+ pool: PgPool,
69
+ }
70
+
71
+ #[async_trait]
72
+ impl MigrationSession for PostgresSession {
73
+ async fn execute(&self, sql: &str) -> Result<(), BoxError> {
74
+ sqlx::query(sql).execute(&self.pool).await?;
75
+ Ok(())
76
+ }
77
+
78
+ async fn fetch_applied(&self, sql: &str) -> Result<HashMap<String, Option<String>>, BoxError> {
79
+ let mut out = HashMap::new();
80
+ for row in sqlx::query(sql).fetch_all(&self.pool).await? {
81
+ let name: String = row.get(0);
82
+ let checksum: Option<String> = row.try_get(1).ok().flatten();
83
+ out.insert(catalog_name(&name).to_string(), checksum);
84
+ }
85
+ Ok(out)
86
+ }
87
+
88
+ async fn apply_in_transaction(
89
+ &self,
90
+ stmts: &[String],
91
+ catalog_sql: &str,
92
+ p1: &str,
93
+ p2: Option<&str>,
94
+ ) -> Result<(), BoxError> {
95
+ use sqlx::Executor;
96
+ let mut tx = self.pool.begin().await?;
97
+ for stmt in stmts {
98
+ tx.execute(stmt.as_str()).await?;
99
+ }
100
+ catalog_exec_tx(&mut tx, catalog_sql, p1, p2).await?;
101
+ tx.commit().await?;
102
+ Ok(())
103
+ }
104
+
105
+ async fn catalog_write(
106
+ &self,
107
+ catalog_sql: &str,
108
+ p1: &str,
109
+ p2: Option<&str>,
110
+ ) -> Result<(), BoxError> {
111
+ catalog_exec_pool(&self.pool, catalog_sql, p1, p2).await
112
+ }
113
+
114
+ async fn fetch_id(&self, sql: &str, p1: &str, p2: &str) -> Result<i64, BoxError> {
115
+ Ok(sqlx::query(sql)
116
+ .bind(p1)
117
+ .bind(p2)
118
+ .fetch_one(&self.pool)
119
+ .await?
120
+ .get::<i64, _>(0))
121
+ }
122
+
123
+ async fn update_log_exec(
124
+ &self,
125
+ sql: &str,
126
+ status: &str,
127
+ duration_ms: i64,
128
+ error_message: Option<&str>,
129
+ id: i64,
130
+ ) -> Result<(), BoxError> {
131
+ sqlx::query(sql)
132
+ .bind(status)
133
+ .bind(duration_ms)
134
+ .bind(error_message)
135
+ .bind(id)
136
+ .execute(&self.pool)
137
+ .await?;
138
+ Ok(())
139
+ }
140
+ }
141
+
142
+ async fn catalog_exec_tx(
143
+ tx: &mut sqlx::Transaction<'_, sqlx::Postgres>,
144
+ sql: &str,
145
+ p1: &str,
146
+ p2: Option<&str>,
147
+ ) -> Result<(), BoxError> {
148
+ if let Some(p2) = p2 {
149
+ sqlx::query(sql)
150
+ .bind(p1)
151
+ .bind(p2)
152
+ .execute(&mut **tx)
153
+ .await?;
154
+ } else {
155
+ sqlx::query(sql).bind(p1).execute(&mut **tx).await?;
156
+ }
157
+ Ok(())
158
+ }
159
+
160
+ async fn catalog_exec_pool(
161
+ pool: &PgPool,
162
+ sql: &str,
163
+ p1: &str,
164
+ p2: Option<&str>,
165
+ ) -> Result<(), BoxError> {
166
+ if let Some(p2) = p2 {
167
+ sqlx::query(sql).bind(p1).bind(p2).execute(pool).await?;
168
+ } else {
169
+ sqlx::query(sql).bind(p1).execute(pool).await?;
170
+ }
171
+ Ok(())
172
+ }
173
+
174
+ fn database_name_from_url(connection: &str) -> Option<&str> {
175
+ let (_, tail) = connection.rsplit_once('/')?;
176
+ let name = tail.split(['?', '#']).next()?;
177
+ if name.is_empty() {
178
+ return None;
179
+ }
180
+ Some(name)
181
+ }
182
+
183
+ fn admin_url(connection: &str, admin_db: &str) -> Option<String> {
184
+ let (head, tail) = connection.rsplit_once('/')?;
185
+ let rest = tail.find(['?', '#']).map(|i| &tail[i..]).unwrap_or("");
186
+ Some(format!("{head}/{admin_db}{rest}"))
187
+ }
188
+
189
+ async fn create_database(connection: &str) -> Result<(), BoxError> {
190
+ let Some(name) = database_name_from_url(connection) else {
191
+ return Ok(());
192
+ };
193
+ if name == "postgres" {
194
+ return Ok(());
195
+ }
196
+ let Some(admin) = admin_url(connection, "postgres") else {
197
+ return Ok(());
198
+ };
199
+ let pool = PgPool::connect(&admin).await?;
200
+ let sql = format!("CREATE DATABASE \"{}\"", name.replace('"', "\"\""));
201
+ match sqlx::query(&sql).execute(&pool).await {
202
+ Ok(_) => Ok(()),
203
+ Err(e) if e.to_string().contains("already exists") => Ok(()),
204
+ Err(e) => Err(e.into()),
205
+ }
206
+ }
207
+
208
+ #[cfg(test)]
209
+ mod tests {
210
+ use super::PostgresDialect;
211
+ use migraters_api::{assert_dialect_surface, SqlDialect};
212
+
213
+ #[test]
214
+ fn surface() {
215
+ let d = PostgresDialect;
216
+ assert_dialect_surface(&d);
217
+ assert_eq!(d.name(), "postgres");
218
+ assert_eq!(
219
+ d.connection_env_vars(),
220
+ &["PG_CONNECTION_STRING", "DATABASE_URL"]
221
+ );
222
+ assert!(d.use_transaction());
223
+ assert_eq!(
224
+ d.normalize_connection("postgres://localhost/db"),
225
+ "postgres://localhost/db"
226
+ );
227
+ assert!(d.prerequisite_error("postgres://localhost/db").is_none());
228
+ d.prepare_setup("postgres://localhost/db").unwrap();
229
+ assert!(d.insert_applied_sql().contains("$1"));
230
+ assert!(d.delete_applied_sql().contains("$1"));
231
+ assert_eq!(d.quote_ident("t"), "\"t\"");
232
+ assert_eq!(d.now_expr(), "CURRENT_TIMESTAMP");
233
+ assert_eq!(d.limit_clause(2), "LIMIT 2");
234
+ }
235
+ }
@@ -0,0 +1,11 @@
1
+ [package]
2
+ name = "migraters-sqlite"
3
+ version = "0.0.1"
4
+ edition = "2021"
5
+
6
+ [dependencies]
7
+ async-trait = "0.1"
8
+ inventory = "0.3"
9
+ migraters-api = { path = "../../api" }
10
+ sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite"] }
11
+ tokio = { version = "1", features = ["rt"] }