Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

126 lines (104 sloc) 3.241 kb
#!/usr/bin/env rake
begin
require 'bundler/setup'
rescue LoadError
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
end
begin
require 'rdoc/task'
rescue LoadError
require 'rdoc/rdoc'
require 'rake/rdoctask'
RDoc::Task = Rake::RDocTask
end
RDoc::Task.new(:rdoc) do |rdoc|
rdoc.rdoc_dir = 'rdoc'
rdoc.title = 'postgres_ext'
rdoc.options << '--line-numbers'
rdoc.rdoc_files.include('README.rdoc')
rdoc.rdoc_files.include('lib/**/*.rb')
end
Bundler::GemHelper.install_tasks
require 'rake/testtask'
Rake::TestTask.new(:test) do |t|
t.libs << 'lib'
t.libs << 'test'
t.pattern = 'test/**/*_test.rb'
t.verbose = false
end
task :default => :test
namespace :test do
desc 'Test against all supported ActiveRecord versions'
task :all do
# Currently only supports Active Record v4.0
%w(4.0.x 4.1.x 4.2.x).each do |version|
sh "BUNDLE_GEMFILE='gemfiles/Gemfile.activerecord-#{version}' bundle install --quiet"
sh "BUNDLE_GEMFILE='gemfiles/Gemfile.activerecord-#{version}' bundle exec rake test"
end
end
end
task :setup do
if File.exist?('.env')
puts 'This will overwrite your existing .env file'
end
print 'Enter your database name: [postgres_ext_test] '
db_name = STDIN.gets.chomp
print 'Enter your database user: [] '
db_user = STDIN.gets.chomp
print 'Enter your database password: [] '
db_password = STDIN.gets.chomp
print 'Enter your database server: [localhost] '
db_server = STDIN.gets.chomp
db_name = 'postgres_ext_test' if db_name.empty?
db_password = ":#{db_password}" unless db_password.empty?
db_server = 'localhost' if db_server.empty?
db_server = "@#{db_server}" unless db_user.empty?
env_path = File.expand_path('./.env')
File.open(env_path, 'w') do |file|
file.puts "DATABASE_NAME=#{db_name}"
file.puts "DATABASE_URL=\"postgres://#{db_user}#{db_password}#{db_server}/#{db_name}\""
end
puts '.env file saved'
end
namespace :db do
task :load_db_settings do
require 'active_record'
unless ENV['DATABASE_URL']
require 'dotenv'
Dotenv.load
end
end
task :drop => :load_db_settings do
%x{ dropdb #{ENV['DATABASE_NAME']} }
end
task :create => :load_db_settings do
%x{ createdb #{ENV['DATABASE_NAME']} }
end
task :migrate => :load_db_settings do
ActiveRecord::Base.establish_connection
ActiveRecord::Base.connection.enable_extension 'hstore'
ActiveRecord::Base.connection.create_table :people, force: true do |t|
t.inet "ip"
t.cidr "subnet"
t.integer "tag_ids", array: true
t.string "tags", array: true
t.hstore "data"
t.integer "lucky_number"
t.datetime "created_at"
t.datetime "updated_at"
end
ActiveRecord::Base.connection.create_table :people_tags, force: true do |t|
t.integer "person_id"
t.integer "tag_id"
end
ActiveRecord::Base.connection.create_table :tags, force: true do |t|
t.integer "person_id"
t.string "categories", array: true
t.datetime "created_at"
t.datetime "updated_at"
t.integer "parent_id"
t.string "type"
end
puts 'Database migrated'
end
end
Jump to Line
Something went wrong with that request. Please try again.