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

root/adapters/sqlserver/Rakefile

Revision 7939, 3.3 kB (checked in by lawrence, 1 year ago)

Moving SQL Server tests from AR core to plugin sqlserver adapter. Closes #9884 [lawrence]

Line 
1 require 'rubygems'
2 require 'rake'
3 require 'rake/testtask'
4 require 'rake/packagetask'
5 require 'rake/gempackagetask'
6 require 'rake/contrib/rubyforgepublisher'
7
8 PKG_NAME = 'activerecord-sqlserver-adapter'
9 PKG_BUILD = (".#{ENV['PKG_BUILD']}" if ENV['PKG_BUILD'])
10 PKG_VERSION = "1.0.0#{PKG_BUILD}"
11
12 spec = Gem::Specification.new do |s|
13   s.name = PKG_NAME
14   s.summary = 'SQL Server adapter for Active Record'
15   s.version = PKG_VERSION
16
17   s.add_dependency 'activerecord', '>= 1.15.5.7843'
18   s.require_path = 'lib'
19
20   s.files = %w(lib/active_record/connection_adapters/sqlserver_adapter.rb)
21
22   s.author = 'Tom Ward'
23   s.email = 'tom@popdog.net'
24   s.homepage = 'http://wiki.rubyonrails.org/rails/pages/SQL+Server'
25   s.rubyforge_project = 'activerecord'
26 end
27
28 Rake::GemPackageTask.new(spec) do |p|
29   p.gem_spec = spec
30   p.need_tar = true
31   p.need_zip = true
32 end
33
34 desc "Publish the beta gem"
35 task :pgem => :package do
36   Rake::SshFilePublisher.new("davidhh@wrath.rubyonrails.org", "public_html/gems/gems", "pkg", "#{PKG_NAME}-#{PKG_VERSION}.gem").upload
37   `ssh davidhh@wrath.rubyonrails.org './gemupdate.sh'`
38 end
39
40 desc "Publish the release files to RubyForge."
41 task :release => :package do
42   require 'rubyforge'
43
44   packages = %w(gem tgz zip).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" }
45
46   rubyforge = RubyForge.new
47   rubyforge.login
48   rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages)
49 end
50
51
52 SCHEMA_PATH = File.join(File.dirname(__FILE__), *%w(test fixtures db_definitions))
53
54 desc 'Create the SQL Server test databases'
55 task :create_databases do
56   # Define a user named 'rails' in SQL Server with all privileges granted
57   # Use an empty password for user 'rails', or alternatively use the OSQLPASSWORD environment variable
58   # which allows you to set a default password for the current session.
59   %x( osql -S localhost -U rails -Q "create database activerecord_unittest" -P )
60   %x( osql -S localhost -U rails -Q "create database activerecord_unittest2" -P )
61   %x( osql -S localhost -U rails -d activerecord_unittest -Q "exec sp_grantdbaccess 'rails'" -P )
62   %x( osql -S localhost -U rails -d activerecord_unittest2 -Q "exec sp_grantdbaccess 'rails'" -P )
63   %x( osql -S localhost -U rails -d activerecord_unittest -Q "grant BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW to 'rails';" -P )
64   %x( osql -S localhost -U rails -d activerecord_unittest2 -Q "grant BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW to 'rails';" -P )
65 end
66
67 desc 'Drop the SQL Server test databases'
68 task :drop_databases do
69   %x( osql -S localhost -U rails -Q "drop database activerecord_unittest" -P )
70   %x( osql -S localhost -U rails -Q "drop database activerecord_unittest2" -P )
71 end
72
73 desc 'Recreate the SQL Server test databases'
74 task :recreate_databases => [:drop_databases, :create_databases]
75
76
77 for adapter in %w( sqlserver sqlserver_odbc )
78   Rake::TestTask.new("test_#{adapter}") { |t|
79     t.libs << "test"
80     t.libs << "test/connections/native_#{adapter}"
81     t.libs << "../../../rails/activerecord/test/"
82     t.pattern = ["test/**/*_test_sqlserver.rb", "../../../rails/activerecord/test/**/*_test.rb"]
83     t.verbose = true
84   }
85
86   namespace adapter do
87     task :test => "test_#{adapter}"
88   end
89 end
Note: See TracBrowser for help on using the browser.