-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.rake
34 lines (33 loc) · 1.17 KB
/
schema.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# encoding: utf-8
require 'fileutils'
# Schema rake file
namespace :schema do
desc "Create the database using the Schema Base"
task :reset => :environment do
schema = File.join(RAILS_ROOT, 'db', 'schema.rb')
schema_base = File.join(RAILS_ROOT, 'db', 'schema_base.rb')
proceed = true
if File.exist?(schema_base)
puts "\n\nSe va a crear la base de datos con el schema original.\n.\n..\n...\n....\n"
loop do
print "¿Are you sure? [yes/no]: "
proceed = STDIN.gets.strip
break unless proceed.blank?
end
proceed = (proceed =~ /y(?:es)*/i)
if proceed && ActiveRecord::Base.establish_connection(Rails.env)
if File.exist?(schema)
FileUtils.rm(schema)
end
FileUtils.cp(schema_base, schema)
Rake::Task["db:drop"].invoke
Rake::Task["db:create"].invoke
Rake::Task["db:schema:load"].invoke
Rake::Task["db:version"].invoke
puts "Se ha creado la base de datos exitosamente con el schema original."
end
else
puts "No se encuentra el archivo SCHEMA_BASE en la ruta específica"
end
end
end