mirror of
https://github.com/discourse/discourse.git
synced 2024-12-24 20:43:54 +08:00
49 lines
1.4 KiB
Ruby
49 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
def check_environment!
|
|
raise "Database commands are only supported in development environment" if !Rails.env.development?
|
|
|
|
ENV["SKIP_TEST_DATABASE"] = "1"
|
|
ENV["SKIP_MULTISITE"] = "1"
|
|
end
|
|
|
|
desc "Run db:migrate:reset task and populate sample content for development environment"
|
|
task "dev:reset" => ["db:load_config"] do |_, args|
|
|
check_environment!
|
|
|
|
Rake::Task["db:migrate:reset"].invoke
|
|
Rake::Task["dev:config"].invoke
|
|
Rake::Task["dev:populate"].invoke
|
|
end
|
|
|
|
desc "Initialize development environment"
|
|
task "dev:config" => ["db:load_config"] do |_, args|
|
|
DiscourseDev.config.update!
|
|
end
|
|
|
|
desc "Populate sample content for development environment"
|
|
task "dev:populate" => ["db:load_config"] do |_, args|
|
|
system("redis-cli flushall")
|
|
Rake::Task["groups:populate"].invoke
|
|
Rake::Task["users:populate"].invoke
|
|
Rake::Task["categories:populate"].invoke
|
|
Rake::Task["tags:populate"].invoke
|
|
Rake::Task["topics:populate"].invoke
|
|
end
|
|
|
|
desc "Repopulate sample datas in development environment"
|
|
task "dev:repopulate" => ["db:load_config"] do |_, args|
|
|
require "highline/import"
|
|
|
|
answer =
|
|
ask(
|
|
"Do you want to repopulate the database with fresh data? It will recreate DBs and run migration from scratch before generating all the samples. (Y/n) ",
|
|
)
|
|
|
|
if (answer == "" || answer.downcase == "y")
|
|
Rake::Task["dev:reset"].invoke
|
|
else
|
|
puts "You can run `bin/rails dev:reset` to repopulate anytime."
|
|
end
|
|
end
|