我想知道是否有办法将数据库的单个列从一个 Rails 应用程序移动到另一个 Rails 应用程序。
这样做的原因:我刚刚编写了一个全新的网站版本。它更干净。在新版本中,我还删除了数据库中许多不必要的列。本质上,我想做的是将旧数据库(在 heroku 上)拉入我的新应用程序,同时考虑不再存在的列。在这种情况下,我认为最好的方法是逐列。表和列具有相同的名称。
有什么建议吗?不确定解决此问题的最佳方法并且很难找到任何文档。
最佳答案
您通常通过导出(转储)SQL 数据然后传输到另一个数据库来迁移 SQL 数据库。
对于 Heroku 的 PGSQL,您应该使用 pg_dump
& pg_restore
;
heroku pg:backups capture #-> do this on your "old" app -- captures your database
heroku pg:backups restore 'https://s3.amazonaws.com/path/to/public/db.dump' DATABASE_URL #-> do this on your "new" app
看起来有一个插件(heroku-pg-transfer
):
heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ env DATABASE_URL=postgres://localhost/myapp-development heroku pg:transfer
概览
我已经无数次(在 MYSQL 中)通过从一个数据库下载 .sql
文件,然后使用它来填充另一个数据库来完成此操作。 .sql
文件只是每个表的查询列表,其中填充了数据库中的数据。
以下是使用 PHPMyAdmin 执行此操作的方法(用于演示目的):
然后你会得到一个.sql
文件:
您可以在这里(某种程度上)阅读有关它的信息:MYSQL Migration
在 PGSQL 中也是如此 - 您正在下载 SQL 转储,然后将其上传到新服务器。
当然,这将为您提供与之前完全相同的数据库;如果你想改变它,你要么必须通过 .sql
文件,要么在你的新环境中改变表。
关于ruby-on-rails - Rails 4 - 将数据库列从一个应用程序移动到另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466118/