Class: Frame::Generators::MysqlGenerator

Inherits:
Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/frame/mysql/mysql_generator.rb

Instance Method Summary collapse

Methods inherited from Base

banner, source_root

Instance Method Details

#add_gemsObject



11
12
13
14
15
16
17
# File 'lib/generators/frame/mysql/mysql_generator.rb', line 11

def add_gems
  gem("mysql2")
  comment_lines 'Gemfile', /gem 'sqlite3'/
  Bundler.with_clean_env do
    run "bundle"
  end
end

#add_userObject



28
29
30
31
32
33
34
35
36
37
# File 'lib/generators/frame/mysql/mysql_generator.rb', line 28

def add_user
  config = YAML.load_file('config/database.yml')
  user = config[Rails.env]["username"]
  pw = config[Rails.env]["password"]
  puts "creating user: #{user}"
  puts "using pw: #{pw}"
  output = create_file 'tmp/create_user.sql', "CREATE USER '#{user}'@localhost IDENTIFIED BY '#{pw}';"
  puts "output: #{output}\nEnter mysql root password"
  system "mysql -u root < #{output}"
end

#create_dbObject



50
51
52
53
# File 'lib/generators/frame/mysql/mysql_generator.rb', line 50

def create_db
  rake("db:reset")
  rake("db:setup")
end

#drop_dbObject



19
20
21
22
23
24
25
26
# File 'lib/generators/frame/mysql/mysql_generator.rb', line 19

def drop_db
  config = YAML.load_file('config/database.yml')
  db = config[Rails.env]["database"]
  puts "database: #{db}"
  output = create_file 'tmp/drop_db.sql', "DROP DATABASE IF EXISTS #{db};"
  puts "output: #{output}\nEnter mysql root password"
  system "mysql -u root < #{output}"
end

#grant_userObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/generators/frame/mysql/mysql_generator.rb', line 39

def grant_user
  config = YAML.load_file('config/database.yml')
  user = config[Rails.env]["username"]
  db = config[Rails.env]["database"]
  puts "granting user: #{user}"
  puts "all on db: #{db}"
  output = create_file 'tmp/grant_user.sql', "GRANT ALL PRIVILEGES ON #{db}.* TO '#{user}'@localhost;"
  puts "output: #{output}\nEnter mysql root password"
  system "mysql -u root < #{output}"
end