这听起来像是一个菜鸟问题,但我有一个使用 PSQL 和 Rails 的项目。它托管在heroku上。
我的朋友想帮助我开发这个项目。假设他克隆了我的 heroku 项目并在本地建立了自己的数据库,对其架构等进行更改并推送它。
同时我也在对我的本地数据库进行更改,可能在另一个表上工作,更新字段等并推送我的代码。
我们如何使数据库同步?我们每个人如何才能获得最新版本的数据库及其最新数据?
我们是否必须一直导入/导出数据库模式?这不会覆盖我们的更改和数据吗?
任何
这听起来像是一个菜鸟问题,但我有一个使用 PSQL 和 Rails 的项目。它托管在heroku上。
我的朋友想帮助我开发这个项目。假设他克隆了我的 heroku 项目并在本地建立了自己的数据库,对其架构等进行更改并推送它。
同时我也在对我的本地数据库进行更改,可能在另一个表上工作,更新字段等并推送我的代码。
我们如何使数据库同步?我们每个人如何才能获得最新版本的数据库及其最新数据?
我们是否必须一直导入/导出数据库模式?这不会覆盖我们的更改和数据吗?
任何
我建议您永远不要将本地数据库推送到 Heroku,而是编写迁移并针对您的远程数据库运行它们并执行对heroku run rake db:migrate
您需要的数据进行任何更改的任务。
要检索您的数据库,您可以使用heroku db:pull
虽然我更倾向于使用 pg:transfer 插件(https://github.com/ddollar/heroku-pg-transfer),它在 Heroku 上执行 PSQL 备份,然后在本地恢复它。
您需要养成将更改推送到 github 的好习惯,然后经常拉取以最大程度地降低风险,但 git 在合并更改方面做得很好。另外,考虑实现某种 CI 服务器并拥有一个聊天频道(hipchat、campfire 等),在你们之间共享提交消息,这样你就知道对方在做什么。