3

我想知道在基于 postgres 的现有表转储的续集中创建迁移的最佳方法。我意识到我必须自己编写 down 方法来删​​除表/函数/序列,但是有没有办法告诉后续迁移加载现有的 sql 脚本并执行脚本中的所有内容?

编辑:以防万一不清楚,这是使用 ruby​​ Sequel SQL library / gem

4

3 回答 3

8

您不会从表转储创建迁移,但您可以使用 Sequel 的 schema_dumper 扩展轻松创建迁移。sequel 命令行程序实际上内置了对此的支持:

续集 -d postgres://postgres@localhost/mydb > 001_initial_migration.rb

不支持转储函数或序列,因为它旨在生成独立于数据库的迁移。

如果您正在使用函数和自定义序列,那么您完全处于特定于数据库的领域,并且仅使用数据库的工具可能会更好。

于 2012-05-14T16:07:40.137 回答
-1

您是否在问如何使用 PostgreSQL 命令行客户端执行 SQL 脚本?如果是这样,答案是使用以下--file选项:

psql -U postgres -d mydb -f dump.sql.
于 2012-05-12T03:29:59.413 回答
-1
DB.extension :schema_dumper

query = Vydia::DB.dump_schema_migration({:indexes => true, :foreign_keys => true, :index_names => true})

sequel 有一个扩展名schema_dumper,您可以使用它作为 ruby​​ 将 db 结构转储到迁移文件中,您也可以指定要转储的内容。

于 2017-10-13T16:35:35.130 回答