我如何将rails应用程序上的ruby导入另一台计算机

时间:2018-01-31 16:40:51

标签: mysql ruby-on-rails ruby database postgresql

我正在尝试将rails项目中的ruby导入我的计算机,但遇到了数据库的各种问题。

情况如下:

我有一个来自其他开发者的 appname.tar.gz 。我将其解压缩并重新定位到我的用户目录以使用它。

  • 接下来,我在目录中运行bundle install来安装gem 依赖。
  • 然后我运行rake db:create来创建数据库和 从同一目录中的DB文件夹加载架构和结构。这是我遇到各种各样问题的地方。当我启动应用程序时,我收到一条错误,指出数据库迁移待处理
    • structure.sql是一个MySQL转储10.13
    • 而database.yml文件的适配器设置为postgres:adapter: postgres。这是正常的吗?

这是将现有应用导入您的环境的最佳方式吗?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

对我来说,这听起来像你有一个MySQL转储,应用程序配置为使用postgres。我很奇怪为什么会这样,但您可以通过设置类似

的内容尝试在config/database.yml文件中使用mysql适配器
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:
  host: localhost

development:
  <<: *default
  database: foobar_development

有趣的是adapter: mysql2

我从一个全新的rails应用程序中获取了这个。你肯定需要运行mysql。

希望这会有所帮助。如果不是,你必须联系其他人以获得一些与postgresql兼容的转储。

答案 1 :(得分:0)

我得到了它的工作!感谢大家的帮助!真的很感激。 以下是对我有用的步骤:

  1. 将项目复制到新计算机
  2. 打开终端并将目录更改为项目
  3. 运行bundle install以安装所有gem依赖项
  4. 运行bundle update以更新已安装的宝石
  5. 运行pg_ctl -D /usr/local/var/postgres start
  6. 启动Postgres服务器
  7. 运行createdb databasename以在新计算机上创建数据库。数据库名称必须与config文件夹中database.yml文件中提到的数据库匹配。
  8. 运行rake db:schema:load,就是这样!
  9. 按照上述步骤后,我可以运行rails s查看该网站。