mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Changed :dbfile to :database for SQLite adapter for consistency (old key still works as an alias) (closes #2644) [Dan Peterson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2825 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
ea44527afd
commit
c21fdf31a5
9 changed files with 25 additions and 21 deletions
|
@ -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 <schoenm@earthlink.net>]
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -27,13 +27,13 @@ module ActiveRecord
|
|||
#
|
||||
# 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
|
||||
|
|
|
@ -15,7 +15,7 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
db = SQLite3::Database.new(
|
||||
config[:dbfile],
|
||||
config[:database],
|
||||
:results_as_hash => true,
|
||||
:type_translation => false
|
||||
)
|
||||
|
@ -29,7 +29,7 @@ module ActiveRecord
|
|||
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 @@ module ActiveRecord
|
|||
|
||||
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 @@ module ActiveRecord
|
|||
#
|
||||
# Options:
|
||||
#
|
||||
# * <tt>:dbfile</tt> -- Path to the database file.
|
||||
# * <tt>:database</tt> -- Path to the database file.
|
||||
class SQLiteAdapter < AbstractAdapter
|
||||
def adapter_name #:nodoc:
|
||||
'SQLite'
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:"
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue