diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 8dca6b1535fbe736b0c32026c4813d9deac175dc..c7f4a0ff91054260fe204a08c40c7704d37ad188 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Changed :dbfile to :database for SQLite adapter for consistency (old key still works as an alias) #2644 [Dan Peterson] + * Added migration support for Oracle #2647 [Michael Schoen] * Worked around that connection can't be reset if allow_concurrency is off. #2648 [Michael Schoen ] diff --git a/activerecord/README b/activerecord/README index 300ce8a495284ea0c7608cab16bf18dd054323b6..bffa2ab65d1473bf5cca63cf9e86e583eba36a83 100755 --- a/activerecord/README +++ b/activerecord/README @@ -165,7 +165,7 @@ A short rundown of the major features: * Database abstraction through simple adapters (~100 lines) with a shared connector - ActiveRecord::Base.establish_connection(:adapter => "sqlite", :dbfile => "dbfile") + ActiveRecord::Base.establish_connection(:adapter => "sqlite", :database => "dbfile") ActiveRecord::Base.establish_connection( :adapter => "mysql", diff --git a/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb b/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb index 7858d08b66211c8f7a59d7973fb2a4801b2c46eb..a20304ea627dc4a214e4cb059a2d5da2351d9594 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb @@ -27,13 +27,13 @@ def initialize (config, adapter_method) # # ActiveRecord::Base.establish_connection( # :adapter => "sqlite", - # :dbfile => "path/to/dbfile" + # :database => "path/to/dbfile" # ) # # Also accepts keys as strings (for parsing from yaml for example): # ActiveRecord::Base.establish_connection( # "adapter" => "sqlite", - # "dbfile" => "path/to/dbfile" + # "database" => "path/to/dbfile" # ) # # The exceptions AdapterNotSpecified, AdapterNotFound and ArgumentError diff --git a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb index f0c2cc06d4732f92b31d162dc1c22872fe14b084..3a53b59d1a3d1de14a692fc28d30aa6b2c06ef46 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb @@ -15,7 +15,7 @@ def sqlite3_connection(config) # :nodoc: end db = SQLite3::Database.new( - config[:dbfile], + config[:database], :results_as_hash => true, :type_translation => false ) @@ -29,7 +29,7 @@ def sqlite_connection(config) # :nodoc: unless self.class.const_defined?(:SQLite) require_library_or_gem(config[:adapter]) - db = SQLite::Database.new(config[:dbfile], 0) + db = SQLite::Database.new(config[:database], 0) db.show_datatypes = "ON" if !defined? SQLite::Version db.results_as_hash = true if defined? SQLite::Version db.type_translation = false @@ -45,16 +45,17 @@ def sqlite_connection(config) # :nodoc: private def parse_config!(config) - # Require dbfile. - unless config.has_key?(:dbfile) - raise ArgumentError, "No database file specified. Missing argument: dbfile" + config[:database] ||= config[:dbfile] + # Require database. + unless config.has_key?(:database) + raise ArgumentError, "No database file specified. Missing argument: database" end # Allow database path relative to RAILS_ROOT, but only if # the database path is not the special path that tells # Sqlite build a database only in memory. - if Object.const_defined?(:RAILS_ROOT) && ':memory:' != config[:dbfile] - config[:dbfile] = File.expand_path(config[:dbfile], RAILS_ROOT) + if Object.const_defined?(:RAILS_ROOT) && ':memory:' != config[:database] + config[:database] = File.expand_path(config[:database], RAILS_ROOT) end end end @@ -88,7 +89,7 @@ def binary_to_string(value) # # Options: # - # * :dbfile -- Path to the database file. + # * :database -- Path to the database file. class SQLiteAdapter < AbstractAdapter def adapter_name #:nodoc: 'SQLite' diff --git a/activerecord/test/connections/native_sqlite/connection.rb b/activerecord/test/connections/native_sqlite/connection.rb index b686c7705b96e1dbccbd9d1c680031babc421035..6a08fc1f8e52000476abcad9967a80ed12d3b949 100644 --- a/activerecord/test/connections/native_sqlite/connection.rb +++ b/activerecord/test/connections/native_sqlite/connection.rb @@ -18,7 +18,7 @@ def make_connection(clazz, db_file, db_definitions_file) raise SqliteError.new("Seems that there is no sqlite executable available") unless system(sqlite_command) clazz.establish_connection( :adapter => "sqlite", - :dbfile => db_file) + :database => db_file) script = File.read("#{BASE_DIR}/db_definitions/#{db_definitions_file}") # SQLite-Ruby has problems with semi-colon separated commands, so split and execute one at a time script.split(';').each do @@ -28,7 +28,7 @@ def make_connection(clazz, db_file, db_definitions_file) else clazz.establish_connection( :adapter => "sqlite", - :dbfile => db_file) + :database => db_file) end end diff --git a/activerecord/test/connections/native_sqlite3/connection.rb b/activerecord/test/connections/native_sqlite3/connection.rb index 07856cc6777be7f768f10734b5c2a0debb1ac349..917f7129da32c8fe2878ca509ddaa2a7f18c4f10 100644 --- a/activerecord/test/connections/native_sqlite3/connection.rb +++ b/activerecord/test/connections/native_sqlite3/connection.rb @@ -18,7 +18,7 @@ def make_connection(clazz, db_file, db_definitions_file) raise SqliteError.new("Seems that there is no sqlite3 executable available") unless system(sqlite_command) clazz.establish_connection( :adapter => "sqlite3", - :dbfile => db_file) + :database => db_file) script = File.read("#{BASE_DIR}/db_definitions/#{db_definitions_file}") # SQLite-Ruby has problems with semi-colon separated commands, so split and execute one at a time script.split(';').each do @@ -28,7 +28,7 @@ def make_connection(clazz, db_file, db_definitions_file) else clazz.establish_connection( :adapter => "sqlite3", - :dbfile => db_file) + :database => db_file) end end diff --git a/activerecord/test/connections/native_sqlite3/in_memory_connection.rb b/activerecord/test/connections/native_sqlite3/in_memory_connection.rb index d11a5fe8c822a5325ff670f2cefc3c118ecb75fb..9e0414ba8827f534ce4325d63d8d29228c787789 100644 --- a/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +++ b/activerecord/test/connections/native_sqlite3/in_memory_connection.rb @@ -7,7 +7,7 @@ class SqliteError < StandardError end def make_connection(clazz, db_definitions_file) - clazz.establish_connection(:adapter => 'sqlite3', :dbfile => ':memory:') + clazz.establish_connection(:adapter => 'sqlite3', :database => ':memory:') File.read("#{File.dirname(__FILE__)}/../../fixtures/db_definitions/#{db_definitions_file}").split(';').each do |command| clazz.connection.execute(command) unless command.strip.empty? end diff --git a/railties/configs/database.yml b/railties/configs/database.yml index 52fa913b93415dc593e3e7e9f1d01f7a04873a43..460ccf4236eaf59a569833c8c87b288097214a5c 100644 --- a/railties/configs/database.yml +++ b/railties/configs/database.yml @@ -6,6 +6,7 @@ # # Get the fast C bindings: # gem install mysql +# (on OS X: gem install mysql -- --include=/usr/local/lib) # And be sure to use new-style password hashing: # http://dev.mysql.com/doc/refman/5.0/en/old-client.html development: @@ -81,10 +82,10 @@ sqlite_example: # gem install sqlite3-ruby sqlite3_example: adapter: sqlite3 - dbfile: db/development.sqlite3 + database: db/development.sqlite3 # In-memory SQLite 3 database. Useful for tests. sqlite3_in_memory_example: adapter: sqlite3 - dbfile: ":memory:" + database: ":memory:" \ No newline at end of file diff --git a/railties/lib/tasks/databases.rake b/railties/lib/tasks/databases.rake index 4a2efa98ee7a90ebf945f7a384dd0aeef32c480b..97c07f97f9d1d03eb265d5361cb7896c4276d642 100644 --- a/railties/lib/tasks/databases.rake +++ b/railties/lib/tasks/databases.rake @@ -55,7 +55,7 @@ task :db_structure_dump => :environment do else raise "Task not supported by '#{abcs["test"]["adapter"]}'" end - + if ActiveRecord::Base.connection.supports_migrations? File.open("db/#{RAILS_ENV}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.dump_schema_information } end @@ -65,7 +65,7 @@ desc "Recreate the test databases from the development structure" task :clone_structure_to_test => [ :db_structure_dump, :purge_test_database ] do abcs = ActiveRecord::Base.configurations case abcs["test"]["adapter"] - when "mysql" + when "mysql" ActiveRecord::Base.establish_connection(:test) ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0') IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split("\n\n").each do |table| @@ -80,7 +80,7 @@ task :clone_structure_to_test => [ :db_structure_dump, :purge_test_database ] do `#{abcs["test"]["adapter"]} #{abcs["test"]["dbfile"]} < db/#{RAILS_ENV}_structure.sql` when "sqlserver" `osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{RAILS_ENV}_structure.sql` - when "oci", + when "oci" ActiveRecord::Base.establish_connection(:test) IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split(";\n\n").each do |ddl| ActiveRecord::Base.connection.execute(ddl)