当我从一个开发平台移动到另一个开发平台时,我正试图在机器之间移动一个postgres数据库。我在两台机器上安装了yaml_db
gem。
在我的旧平台上,我做了:
rake db:scheme:dump
rake db:data:dump
当我在我的新机器上转到reload
数据库时,我发现我的二十几个foreign_keys
阻止我加载我的数据。我有什么选择?
答案 0 :(得分:1)
你正在复制数据库,Rails真的不应该与这个过程有任何关系(正如你所看到的那样,它只会妨碍你。)
相反,戴上你的DBA帽子并复制数据库而不用担心Rails。使用pg_dump
转储数据,然后使用pg_restore
恢复数据。数据库的备份/恢复工具了解外键,触发器,扩展以及Railsy工具无法理解的任何其他内容。
答案 1 :(得分:0)
您可以使用pg_dump命令转储数据库:
例如:
pg_dump -U <user-name> -h <host> <database> > <file-name>.sql
pg_dump -U postgres -h 127.0.0.1 database1 > database1.sql
然后将文件复制到其他计算机并运行以下命令以恢复数据库
psql <database-name> < path/to/sql_dump_file
psql database1 < database1.sql