Где находится db: create, определенный в Rails? - PullRequest
0 голосов
/ 01 мая 2018

Следующая команда должна создать новую базу данных.

rails db: create

Где определена эта функция? Или это предварительно упакованная функция в рельсах?

1 Ответ

0 голосов
/ 01 мая 2018

Он находится в файле database.rake фреймворка:

namespace :create do
  task all: :load_config do
    ActiveRecord::Tasks::DatabaseTasks.create_all
  end

  ActiveRecord::Tasks::DatabaseTasks.for_each do |spec_name|
    desc "Create #{spec_name} database for current environment"
    task spec_name => :load_config do
      db_config = ActiveRecord::DatabaseConfigurations.config_for_env_and_spec(Rails.env, spec_name)
      ActiveRecord::Tasks::DatabaseTasks.create(db_config.config)
    end
  end
end

Если вы сомневаетесь или хотите узнать, где была определена задача, вы можете использовать команду rails -W (или rake), передавая задачу:

$ rails -W db:create
rails db:create     /path/databases.rake:26:in `block in <top (required)>'
rails db:create:all /path/databases.rake:20:in `block (2 levels) in <top (required)>'

Обратите внимание, что это было введено в версии 0.9 Rake. Это может работать или не работать в зависимости от версий, с которыми вы работаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...