我是移动设备程序员,我是数据库,网络,服务器编程的新手,这个问题让我生病了:(
我整天都在挖这种情况,没有答案可以解决我的问题。
我的Ruby on Rails项目中有production.sqlite3,这是在生产模式下使用sqlite3 DB的AWS服务器。
现在我使用postgresql DB将此应用程序上传到heroku,没有数据(空),更改sqlite3 - > postgresql在生产模式下。
我想将production.sqlite3中的数据传输到空删除postgresql DB。
我该怎么做?我无法理解我是如何实现这一目标的。
1)本地sqlite3 - >远程空postgresql DB直接?
2)本地sqlite3 - >本地postgresql(迁移) - >远程空postgresql DB?
我通过macports安装了postgresql92(因为heroku远程postgresql版本),
所以路径是'/ opt / local / lib / postgresql92'。
我试过
PG:转移
的psql
pg_ctl
并且仍然不知道这样做。请帮我解决这个问题。
答案 0 :(得分:1)
最好在所有环境中使用相同的数据库。我还不能发表评论要求澄清,所以我会尽力回答你的问题。对不起,如果我太基本了。
如果您需要将数据从SQLite传输到PostgreSQL数据库,则必须使用https://github.com/ricardochimal/taps等工具手动执行此操作。您必须设置本地PostgreSQL数据库并从SQL数据库导入数据。然后,您可以使用以下命令将数据推送到heroku:
db:push [<database_url>] # push a local database into the app's remote database
将PostgreSQL gem添加到Gemfile
gem 'pg'
使用PostgreSQL的示例database.yml文件
development:
adapter: postgresql
encoding: unicode
database: app_development
pool: 5
test:
adapter: postgresql
encoding: unicode
database: app_test
pool: 5
production:
adapter: postgresql
encoding: unicode
database: app_production
pool: 5
接下来,您需要创建数据库
rake db:create:all
确保在所有这些之后rails开发数据库是psql(运行rails db)
这就是你确保rails使用psql的方法。