【问题标题】:How do I change rails' default database from sqlite3 to postgres, across all new projects?如何在所有新项目中将 Rails 的默认数据库从 sqlite3 更改为 postgres?
【发布时间】:2017-05-01 08:55:53
【问题描述】:

为新手问题道歉。我想将 postgresql 设为 所有新的 Rails 应用程序的默认设置。我知道命令:

rails new my_app --database=postgresql

...但是我对 sqlite3 和输入这个额外的命令有一种非理性的厌恶。我希望我的 Rails 应用程序一夫一妻制地喜欢 postgres,而无需我告诉他们他们不应该先与 sqlite3 挂钩。我该怎么做?

我使用 rbenv(再次,不合理)来管理我的 ruby​​ 版本。提前致谢。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    在您的 HOME 目录中创建一个 .railsrc 文件并将您的数据库覆盖放在那里

    # ~/.railsrc
    --database=postgresql
    

    您可以添加您可能想要使用的所有其他覆盖,例如--skip-test-unit 等。

    每次运行rails new 命令时都会应用此文件。

    【讨论】:

    • 谢谢! sqlite3 依赖的来源在哪里?我可以在那里改变它吗?
    • @apiary9 sqlite3 作为默认数据库?我认为是在rails new 中硬编码的。你不想在那里改变它。这就是这些覆盖的用途。
    • 啊,终于有答案了!谢谢你,善良的互联网专家!
    • @apiary9:不要忘记接受有用的答案 :)
    • 我可以在.railsrc中指定数据库版本吗?我想使用 sqlite v1.3.6
    【解决方案2】:

    您可以通过根据给定文件更改 database.yml 来更改默认数据库,并且不要忘记在路由 gemfile 中添加 pg gem,例如 gem 'pg'

    development:
      adapter: postgresql
      encoding: utf8
      database: project_development
      pool: 5
      username: 
      password:
    
    test: &TEST
      adapter: postgresql
      encoding: utf8
      database: project_test
      pool: 5
      username: 
      password:
    
    production:
      adapter: postgresql
      encoding: utf8
      database: project_production
      pool: 5
      username: 
      password:
    

    如果这不能帮助您看到轨道演员Migrating to PostgreSQL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2020-12-29
      相关资源
      最近更新 更多