将数据库从开发导出到生产

恐怖分子

我正在使用gem yaml_db将Postgres开发数据库导出到生产环境,该数据库位于我的Ruby on Rails应用所在的虚拟机上。

rake db:data:dump RAILS_ENV=development用来创建data.yml和rake db:data:load RAILS_ENV=production导入数据,但是在导入时遇到了错误。

rake aborted!
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: DELETE FROM "improvement_actions"

PG::FeatureNotSupported: ERROR:  cannot truncate a table referenced in a foreign key constraint
DETAIL:  Table "comments" references "improvement_actions".

有谁知道如何解决这个问题?还是有另一种导出我的数据库的方法?

戴夫·斯威斯古斯(Dave Schweisguth)

该错误是因为您的数据库具有外键,yaml_db不支持该外键。

我认为最简单的解决方案是使用pg_dump带有--disable-triggers标志的导出您的开发数据库,​​然后使用将该标志导入到您的生产数据库pg_restore

但是,如果您确实要使用yaml_db,则已记录了一个相当复杂的解决方案该解决方案的核心是

  • 进行所有外键(deferrable initially immediate如果还没有的话)。记录在案的解决方案使用schema_plus gem,也可以在Postgres中进行。
  • 使用monkey-patch yaml_dbSerializationHelper::Base#load来延迟每次加载事务期间的所有约束,set constraints all deferred;
  • monkey-patch yaml_dbSerializationHelper::Base#truncate_table通过尝试像往常一样截断(在延迟了触发的表上不允许截断)来截断表,如果截断失败,则将其删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据库从开发导出到生产

来自分类Dev

将数据库从开发导出到生产

来自分类Dev

将数据库导出到sdcard

来自分类Dev

自动将数据从数据库导出到CSV文件

来自分类Dev

将数据从数据库导出到HTML?

来自分类Dev

将数据库从SQLite导出到MongoDB

来自分类Dev

Rails 4:将数据库导出到YAML

来自分类Dev

将Firebird数据库导出到SQL

来自分类Dev

将数据库模式导出到XML文件

来自分类Dev

将Django数据库导出到YAML文件

来自分类Dev

将数据库导出到远程SQL Server实例?

来自分类Dev

将数据库从SQLite导出到MongoDB

来自分类Dev

将数据库从SQL Server导出到Azure

来自分类Dev

用PHP将数据库导出到CSV

来自分类Dev

PHP将结果从数据库导出到CSV

来自分类Dev

无法将多行从数据库导出到 XML

来自分类Dev

将列从开发数据库表添加到生产数据库表

来自分类Dev

将生产数据库迁移到与开发数据库相同的结构

来自分类Dev

Postgressql:仅将某些表中的数据从生产数据库复制到开发数据库

来自分类Dev

如何将数据从生产数据库迁移到开发数据库(第4条)?

来自分类Dev

如何将数据库A的neo4j数据导出到数据库B?

来自分类Dev

将数据从BigQuery导出到本地PostgreSQL / MySql数据库

来自分类Dev

如何将Logstash数据导出到外部数据库

来自分类Dev

如何根据XSD将数据从数据库导出到xml

来自分类Dev

如何使用ajax调用+ javascript将数据从数据库导出到excel

来自分类Dev

使用php将数据从数据库导出到csv文件

来自分类Dev

如何使用ASP.NET MVC将数据从数据库导出到Excel工作表?

来自分类Dev

我可以自动将数据从Cognos报表导出到数据库吗?

来自分类Dev

通过wifi将数据从Raspberry Pi导出到PC上的mysql数据库

Related 相关文章

热门标签

归档