db:create 在 Rails 中定义在哪里?



以下命令应该创建一个新数据库。

轨道数据库:创建

这个函数在哪里定义?或者这是导轨中的预打包功能?

它位于框架的 databases.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)>'

请注意,它是在 Rake 的 0.9 版本中引入的。这可能有效,也可能无效,具体取决于您正在使用的版本。

最新更新