【问题标题】:rails db:migrate fails rake aborted ActiveRecord::NoDatabaseErrorrails db:migrate 失败 rake aborted ActiveRecord::NoDatabaseError
【发布时间】:2015-06-20 00:07:02
【问题描述】:

在 cloud9 IDE 上,我安装了 postgresql,因为在 Heroku 上部署需要它,我正在学习这个,所以我不确定,当我尝试迁移一个简单的数据库表时,我使用了这个 bundle exec rake db:migrate 我得到一个 rake aborted 和一个 ActiveRecord::NoDatabaseError: FATAL: role "ubuntu" does not exist。

【问题讨论】:

    标签: ruby-on-rails postgresql heroku


    【解决方案1】:

    Postgresql 预装在 Cloud9 上。但是,您根本无法运行 bundle exec rake db:migrate,因为您必须先对其进行设置并连接到它。请参阅此处的文档https://docs.c9.io/v1.0/docs/setting-up-postgresql,了解如何设置它。此外,您不需要需要 安装 postgresql 即可部署到 Heroku。你可以使用rails自带的sqlite。但是,最佳做法是使用相同的数据库进行开发和生产。

    【讨论】:

    • 是的,我确实遵循了该文档,但我误以为它是为了安装 postgresql。我正在做 Ruby on Rails 教程书。它说将 gemfile 更改为 gem 'pg' '0.17.1' gem 'rails_12factor' '0.0.2' 所以我运行了 bundle install 然后 rails 生成脚手架 User name:string email:string 这工作但迁移失败。
    • 你把那些宝石放在group :production do下了吗?因为在您实际部署到 heroku 之前不需要这些。
    • db文件夹下有development.sqlite3文件吗?
    • 我没有该组下的宝石:生产。我只是改变了它并运行了一个捆绑安装它工作。我在 db 文件夹下确实有 development.sqlite3 文件。它是空的。谢谢。
    • 先尝试运行rake db:create
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2012-05-28
    • 2011-04-15
    相关资源
    最近更新 更多