提交 c21fdf31 编写于 作者: D David Heinemeier Hansson

Changed :dbfile to :database for SQLite adapter for consistency (old key still...

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
上级 ea44527a
*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 @@ 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
......
......@@ -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:
#
# * <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:"
\ No newline at end of file
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册