我的所有表,视图,触发器都在不同的文件中(Table1.sql,Table2.sql,View1.sql,...),我需要将所有模型脚本组合起来创建一个allinone.sql脚本(例如,用于部署的可交付成果)。现在我可以使用“type”命令组合所有这些:
type *.sql > allinone.sql (or cat in bash)
但是,由于我具有参照完整性,我需要建立合并文件的顺序。 (否则allinone.sql脚本将通过引用完整性失败)
你知道任何软件或方法吗?
答案 0 :(得分:3)
在运行脚本之前禁用fkey检查
SET FOREIGN_KEY_CHECKS = 0;
最后,输入
SET FOREIGN_KEY_CHECKS = 1;
启用你的fkey检查
答案 1 :(得分:0)
如果您的SQL实现具有包含文件机制,您可以使用它。对于Postgres的psql终端监视器,可以使用\i filename
命令完成此操作:
\i create_database.sql
\i create_tables.sql
\i populate_tables.sql
\i create_indexes.sql
\i create_functions.sql
\i create_triggers.sql
\i revoke_and_grant.sql
\i do_some_checks.sql
这应该全部放入“all_files.sql”脚本,然后由psql a_database <all_files.sql
提交。
当然,您必须手动订购脚本以获得所需的执行顺序。