adapter_extensions 0.9.5 → 1.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +14 -0
- data/CHANGELOG +5 -0
- data/HOW_TO_RELEASE +4 -4
- data/LICENSE +1 -1
- data/README.md +121 -14
- data/Rakefile +38 -53
- data/adapter_extensions.gemspec +4 -2
- data/lib/adapter_extensions/active_record/adapters/abstract_adapter.rb +9 -0
- data/lib/adapter_extensions/active_record/adapters/mysql2_adapter.rb +6 -0
- data/lib/adapter_extensions/active_record/adapters/mysql_adapter.rb +6 -0
- data/lib/adapter_extensions/active_record/adapters/postgresql_adapter.rb +6 -0
- data/lib/adapter_extensions/active_record/adapters/sqlserver_adapter.rb +6 -0
- data/lib/adapter_extensions/adapters/abstract_adapter.rb +44 -0
- data/lib/adapter_extensions/adapters/mysql_adapter.rb +73 -0
- data/lib/adapter_extensions/adapters/postgresql_adapter.rb +47 -0
- data/lib/adapter_extensions/adapters/sqlserver_adapter.rb +63 -0
- data/lib/adapter_extensions/base.rb +19 -0
- data/lib/adapter_extensions/version.rb +1 -1
- data/lib/adapter_extensions.rb +17 -8
- data/test/abstract_adapter_test.rb +10 -4
- data/test/config/database.yml +15 -0
- data/test/{connection/mysql/setup.sql → config/databases/mysql_setup.sql} +0 -0
- data/test/{connection/postgresql/setup.sql → config/databases/postgresql_setup.sql} +0 -0
- data/test/config/gemfiles/.gitignore +1 -0
- data/test/config/gemfiles/Gemfile.rails-3.0.x +3 -0
- data/test/config/gemfiles/Gemfile.rails-3.1.x +3 -0
- data/test/config/gemfiles/Gemfile.rails-3.2.x +3 -0
- data/test/config/gemfiles/common.rb +22 -0
- data/test/integration/adapter_test.rb +23 -7
- data/test/test_helper.rb +3 -4
- data/test/unit/sqlserver_test_ignored.rb +89 -0
- metadata +86 -88
- data/lib/adapter_extensions/connection_adapters/abstract_adapter.rb +0 -50
- data/lib/adapter_extensions/connection_adapters/mysql_adapter.rb +0 -90
- data/lib/adapter_extensions/connection_adapters/postgresql_adapter.rb +0 -52
- data/lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb +0 -44
- data/test/connection/mysql/connection.rb +0 -27
- data/test/connection/postgresql/connection.rb +0 -27
@@ -1,44 +0,0 @@
|
|
1
|
-
# Source code for the SQLServerAdapter extensions.
|
2
|
-
module ActiveRecord #:nodoc:
|
3
|
-
module ConnectionAdapters #:nodoc:
|
4
|
-
# Adds new functionality to ActiveRecord SQLServerAdapter.
|
5
|
-
class SQLServerAdapter < AbstractAdapter
|
6
|
-
def support_select_into_table?
|
7
|
-
true
|
8
|
-
end
|
9
|
-
|
10
|
-
# Inserts an INTO table_name clause to the sql_query.
|
11
|
-
def add_select_into_table(new_table_name, sql_query)
|
12
|
-
sql_query.sub(/FROM/i, "INTO #{new_table_name} FROM")
|
13
|
-
end
|
14
|
-
|
15
|
-
# Copy the specified table.
|
16
|
-
def copy_table(old_table_name, new_table_name)
|
17
|
-
execute add_select_into_table(new_table_name, "SELECT * FROM #{old_table_name}")
|
18
|
-
end
|
19
|
-
|
20
|
-
protected
|
21
|
-
# Call +bulk_load+, as that method wraps this method.
|
22
|
-
#
|
23
|
-
# Bulk load the data in the specified file. This implementation relies
|
24
|
-
# on bcp being in your PATH.
|
25
|
-
#
|
26
|
-
# Options:
|
27
|
-
# * <tt>:ignore</tt> -- Ignore the specified number of lines from the source file
|
28
|
-
# * <tt>:columns</tt> -- Array of column names defining the source file column order
|
29
|
-
# * <tt>:fields</tt> -- Hash of options for fields:
|
30
|
-
# * <tt>:delimited_by</tt> -- The field delimiter
|
31
|
-
# * <tt>:enclosed_by</tt> -- The field enclosure
|
32
|
-
def do_bulk_load(file, table_name, options={})
|
33
|
-
env_name = options[:env] || RAILS_ENV
|
34
|
-
config = ActiveRecord::Base.configurations[env_name]
|
35
|
-
puts "Loading table \"#{table_name}\" from file \"#{filename}\""
|
36
|
-
cmd = "bcp \"#{config['database']}.dbo.#{table_name}\" in " +
|
37
|
-
"\"#{filename}\" -S \"#{config['host']}\" -c " +
|
38
|
-
"-t \"#{options[:delimited_by]}\" -b10000 -a8192 -q -E -U \"#{config['username']}\" " +
|
39
|
-
"-P \"#{config['password']}\" -e \"#{filename}.in.errors\""
|
40
|
-
`#{cmd}`
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
print "Using native MySQL\n"
|
2
|
-
|
3
|
-
#require 'logger'
|
4
|
-
#ActiveRecord::Base.logger = Logger.new("debug.log")
|
5
|
-
|
6
|
-
ActiveRecord::Base.configurations = {
|
7
|
-
'adapter_extensions_unittest' => {
|
8
|
-
:adapter => :mysql,
|
9
|
-
:username => 'root',
|
10
|
-
:host => 'localhost',
|
11
|
-
:database => 'adapter_extensions_unittest',
|
12
|
-
:encoding => 'utf8',
|
13
|
-
:setup_file => 'setup.sql',
|
14
|
-
}
|
15
|
-
}
|
16
|
-
|
17
|
-
ActiveRecord::Base.establish_connection 'adapter_extensions_unittest'
|
18
|
-
|
19
|
-
puts "Resetting database"
|
20
|
-
conn = ActiveRecord::Base.connection
|
21
|
-
conn.recreate_database(conn.current_database)
|
22
|
-
conn.reconnect!
|
23
|
-
lines = open(
|
24
|
-
File.join(File.dirname(__FILE__),
|
25
|
-
ActiveRecord::Base.configurations['adapter_extensions_unittest'][:setup_file])
|
26
|
-
).readlines
|
27
|
-
lines.join.split(';').each { |line| conn.execute(line) }
|
@@ -1,27 +0,0 @@
|
|
1
|
-
print "Using PostgreSQL\n"
|
2
|
-
|
3
|
-
ActiveRecord::Base.configurations = {
|
4
|
-
'adapter_extensions_unittest' => {
|
5
|
-
:adapter => :postgresql,
|
6
|
-
:username => 'postgres',
|
7
|
-
:password => 'postgres',
|
8
|
-
:host => 'localhost',
|
9
|
-
:database => 'adapter_extensions_unittest',
|
10
|
-
:encoding => 'utf8',
|
11
|
-
:setup_file => 'setup.sql',
|
12
|
-
}
|
13
|
-
}
|
14
|
-
|
15
|
-
ActiveRecord::Base.establish_connection 'adapter_extensions_unittest'
|
16
|
-
conn = ActiveRecord::Base.connection
|
17
|
-
lines = open(
|
18
|
-
File.join(File.dirname(__FILE__),
|
19
|
-
ActiveRecord::Base.configurations['adapter_extensions_unittest'][:setup_file])
|
20
|
-
).readlines
|
21
|
-
lines.join.split(';').each_with_index do |line, index|
|
22
|
-
begin
|
23
|
-
conn.execute(line)
|
24
|
-
rescue => e
|
25
|
-
#puts "failed to load line #{index}: #{e}"
|
26
|
-
end
|
27
|
-
end
|