Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 490

Show
Ignore:
Timestamp:
01/24/05 13:12:40 (4 years ago)
Author:
david
Message:

Fixed skeleton Rakefile to work with sqlite3 out of the box #521 [rasputnik]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/railties/CHANGELOG

    r486 r490  
    11*SVN* 
     2 
     3* Fixed skeleton Rakefile to work with sqlite3 out of the box #521 [rasputnik] 
    24 
    35* Fixed that script/breakpointer didn't get the Ruby path rewritten as the other scripts #523 [brandt@kurowski.net] 
  • trunk/railties/fresh_rakefile

    r423 r490  
    7474desc "Recreate the test databases from the development structure" 
    7575task :clone_structure_to_test => [ :db_structure_dump, :purge_test_database ] do 
    76   if ActiveRecord::Base.configurations["test"]["adapter"] == "mysql" 
    77     ActiveRecord::Base.establish_connection(:test) 
    78     ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0') 
    79     IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split("\n\n").each do |table| 
    80       ActiveRecord::Base.connection.execute(table) 
    81     end 
    82   elsif ActiveRecord::Base.configurations["test"]["adapter"] == "postgresql" 
    83     `psql -U #{ActiveRecord::Base.configurations["test"]["username"]} -f db/#{RAILS_ENV}_structure.sql #{ActiveRecord::Base.configurations["test"]["database"]}` 
    84   elsif ActiveRecord::Base.configurations["test"]["adapter"] == "sqlite" 
    85     `sqlite #{ActiveRecord::Base.configurations["test"]["dbfile"]} < db/#{RAILS_ENV}_structure.sql` 
     76  abcs = ActiveRecord::Base.configurations 
     77  case abcs["test"]["adapter"] 
     78    when  "mysql" 
     79      ActiveRecord::Base.establish_connection(:test) 
     80      ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0') 
     81      IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split("\n\n").each do |table| 
     82        ActiveRecord::Base.connection.execute(table) 
     83      end 
     84    when  "postgresql" 
     85      `psql -U #{abcs["test"]["username"]} -f db/#{RAILS_ENV}_structure.sql #{abcs["test"]["database"]}` 
     86    when "sqlite", "sqlite3" 
     87      `#{abcs[RAILS_ENV]["adapter"]} #{abcs["test"]["dbfile"]} < db/#{RAILS_ENV}_structure.sql` 
     88    else  
     89      raise "Unknown database adapter '#{abcs["test"]["adapter"]}'" 
    8690  end 
    8791end 
     
    8993desc "Dump the database structure to a SQL file" 
    9094task :db_structure_dump do 
    91   if ActiveRecord::Base.configurations[RAILS_ENV]["adapter"] == "mysql" 
    92     ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[RAILS_ENV]) 
    93     File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump } 
    94   elsif ActiveRecord::Base.configurations[RAILS_ENV]["adapter"] == "postgresql" 
    95     `pg_dump -U #{ActiveRecord::Base.configurations[RAILS_ENV]["username"]} -s -f db/#{RAILS_ENV}_structure.sql #{ActiveRecord::Base.configurations[RAILS_ENV]["database"]}` 
    96   elsif ActiveRecord::Base.configurations[RAILS_ENV]["adapter"] == "sqlite" 
    97     `sqlite #{ActiveRecord::Base.configurations[RAILS_ENV]["dbfile"]} .schema > db/#{RAILS_ENV}_structure.sql` 
     95  abcs = ActiveRecord::Base.configurations 
     96  case abcs[RAILS_ENV]["adapter"]  
     97    when "mysql" 
     98      ActiveRecord::Base.establish_connection(abcs[RAILS_ENV]) 
     99      File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump } 
     100    when  "postgresql" 
     101      `pg_dump -U #{abcs[RAILS_ENV]["username"]} -s -f db/#{RAILS_ENV}_structure.sql #{abcs[RAILS_ENV]["database"]}` 
     102    when "sqlite", "sqlite3" 
     103      `#{abcs[RAILS_ENV]["adapter"]} #{abcs[RAILS_ENV]["dbfile"]} .schema > db/#{RAILS_ENV}_structure.sql` 
     104    else  
     105      raise "Unknown database adapter '#{abcs["test"]["adapter"]}'" 
    98106  end 
    99107end 
    100108 
    101 desc "Drop the test database and bring it back again
     109desc "Empty the test database
    102110task :purge_test_database do 
    103   if ActiveRecord::Base.configurations["test"]["adapter"] == "mysql" 
    104     ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[RAILS_ENV]) 
    105     ActiveRecord::Base.connection.recreate_database(ActiveRecord::Base.configurations["test"]["database"]) 
    106   elsif ActiveRecord::Base.configurations["test"]["adapter"] == "postgresql" 
    107     `dropdb -U #{ActiveRecord::Base.configurations["test"]["username"]} #{ActiveRecord::Base.configurations["test"]["database"]}` 
    108     `createdb -U #{ActiveRecord::Base.configurations["test"]["username"]}  #{ActiveRecord::Base.configurations["test"]["database"]}` 
    109   elsif ActiveRecord::Base.configurations["test"]["adapter"] == "sqlite" 
    110     File.delete(ActiveRecord::Base.configurations["test"]["dbfile"]) if File.exist?(ActiveRecord::Base.configurations["test"]["dbfile"]) 
     111  abcs = ActiveRecord::Base.configurations 
     112  case abcs["test"]["adapter"] 
     113    when "mysql" 
     114      ActiveRecord::Base.establish_connection(abcs[RAILS_ENV]) 
     115      ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"]) 
     116    when "postgresql" 
     117      `dropdb -U #{abcs["test"]["username"]} #{abcs["test"]["database"]}` 
     118      `createdb -U #{abcs["test"]["username"]}  #{abcs["test"]["database"]}` 
     119    when "sqlite","sqlite3" 
     120      File.delete(abcs["test"]["dbfile"]) if File.exist?(abcs["test"]["dbfile"]) 
     121    else  
     122      raise "Unknown database adapter '#{abcs["test"]["adapter"]}'" 
    111123  end 
    112124end