如何将 dbmate 添加到现有项目?
How to add dbmate to existing project?
dbmate
(link) 是一个很棒的 CLI 工具,用于管理 SQL 数据库中的模式迁移。我们的团队采用了它,但我们有一些已有的项目已经拥有 PostgreSQL 数据库。如果从项目一开始就使用 dbmate
就很棒,但是有什么直接的方法可以将预先存在的数据库移植到 dbmate
中吗?在文档中找不到任何相关信息。
我们有像 DataGrip/PyCharm pro 这样的 JetBrains 工具,所以如果有某种方法可以将数据库导出到一个模式文件中,那么 dbmate
可以以某种方式管理,即使是 hacky,该解决方案就好了。
您可以 运行 dbmate dump
获取现有架构并将其添加到“假”迁移中。方法如下:
- 运行
dbmate dump
将生成 db/schema.sql
- 将其重命名为 import.sql
- 运行
dbmate new import
将生成“导入”迁移
- 运行
dbmate new start
将生成“开始”迁移
- 将您喜欢的任何内容添加到“开始”迁移或将其留空
- 运行
dbmate up
- 如有必要修改
import.sql
,然后将其内容移动到“导入”迁移
现在 dbmate“光标”位于“开始”迁移上,就好像“导入”迁移已经发生一样。您可以继续在现有架构之上进行新的迁移。
dbmate
(link) 是一个很棒的 CLI 工具,用于管理 SQL 数据库中的模式迁移。我们的团队采用了它,但我们有一些已有的项目已经拥有 PostgreSQL 数据库。如果从项目一开始就使用 dbmate
就很棒,但是有什么直接的方法可以将预先存在的数据库移植到 dbmate
中吗?在文档中找不到任何相关信息。
我们有像 DataGrip/PyCharm pro 这样的 JetBrains 工具,所以如果有某种方法可以将数据库导出到一个模式文件中,那么 dbmate
可以以某种方式管理,即使是 hacky,该解决方案就好了。
您可以 运行 dbmate dump
获取现有架构并将其添加到“假”迁移中。方法如下:
- 运行
dbmate dump
将生成db/schema.sql
- 将其重命名为import.sql
- 运行
dbmate new import
将生成“导入”迁移 - 运行
dbmate new start
将生成“开始”迁移 - 将您喜欢的任何内容添加到“开始”迁移或将其留空
- 运行
dbmate up
- 如有必要修改
import.sql
,然后将其内容移动到“导入”迁移
现在 dbmate“光标”位于“开始”迁移上,就好像“导入”迁移已经发生一样。您可以继续在现有架构之上进行新的迁移。