【问题标题】:Moving the db folder created by bundle exec rake db:migrate移动由 bundle exec rake db:migrate 创建的 db 文件夹
【发布时间】:2016-07-06 04:46:56
【问题描述】:

我的文件结构通常是这样的:

├── mainAppFolder
│   ├── app.rb
│   ├── rakefile
│   └── db
│       ├── schema.rb
|       └── migrations

我想改成:

├── mainAppFolder
│   ├── app.rb
│   ├── rakefile
|   └── database
│       └── db
│           ├── schema.rb
|           └── migrations

我认为这可能涉及编辑 rake 任务并使用Dir.chdir("./database"),但我不知道该怎么做。谷歌搜索只使用config.path 得到我的一个问题,这仅与 Rails 相关,我正在使用 sinatra。我怎样才能做到这一点?

【问题讨论】:

  • 您为什么要与ActiveRecord 约定作斗争?你想达到什么目标?
  • 一个整洁的项目文件夹
  • db 文件夹(代表数据库)放入database 文件夹绝不是整洁的。按照同样的逻辑,您应该愿意将app 放入application 文件夹,将config 放入configuration 等等-IMO 毫无意义
  • db 不是其中唯一的东西。我有一堆其他文件用于数据库相关任务。
  • (对不起,题外话的答案。)想到另一件事 - 我将架构文件移动到 Rails 引擎并使用 env 变量 SCHEMA 指向架构文件的新位置.我怀疑这是活动记录使用的东西。

标签: ruby activerecord sinatra rake


【解决方案1】:

虽然我强烈建议不要更改默认路径,但我认为您可以像 rails docs 中宣传的那样进行操作:

include ActiveRecord::Tasks
DatabaseTasks.database_configuration = YAML.load_file('my_database_config.yml')
DatabaseTasks.db_dir = 'db'

由于您尚未实际发布您在 sinatra 应用程序中使用活动记录的具体情况,因此这只是一个猜测。

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    相关资源
    最近更新 更多