63 lines
1.5 KiB
Ruby
63 lines
1.5 KiB
Ruby
require 'dotenv/load'
|
|
require 'sequel'
|
|
require 'sequel/extensions/seed'
|
|
|
|
require_relative './lib/full_odds'
|
|
require_relative './lib/full_odds/db'
|
|
|
|
def create_migration_or_seed(type, args)
|
|
name = args[:name] || type
|
|
timestamp = Time.now.strftime("%Y%m%d%H%M%S")
|
|
Dir.mkdir("lib/full_odds/db/#{type}s") unless Dir.exist?("lib/full_odds/db/#{type}s")
|
|
filename = "lib/full_odds/db/#{type}s/#{timestamp}_#{name}.rb"
|
|
filename
|
|
end
|
|
|
|
namespace :db do
|
|
desc "Run migrations"
|
|
task :migrate do
|
|
Sequel.extension :migration
|
|
db = FO::DB.connection
|
|
Sequel::Migrator.run(db, "lib/full_odds/db/migrations")
|
|
puts "Database migrated successfully!"
|
|
end
|
|
|
|
desc "Create migration"
|
|
task :new_migration, [:name] do |t, args|
|
|
filename = create_migration_or_seed('migration', args)
|
|
File.open(filename, 'w') do |f|
|
|
f.write <<~RUBY
|
|
Sequel.migration do
|
|
change do
|
|
# Add migration logic here
|
|
end
|
|
end
|
|
RUBY
|
|
end
|
|
puts "Created migration: #{filename}"
|
|
end
|
|
|
|
desc "Apply seeds"
|
|
task :seed do
|
|
Sequel.extension :seed
|
|
db = FO::DB.connection
|
|
Sequel::Seeder.apply(db, "lib/full_odds/db/seeds")
|
|
puts "Seeds run successfully!"
|
|
end
|
|
|
|
desc "Create seed"
|
|
task :new_seed, [:name] do |t, args|
|
|
filename = create_migration_or_seed('seed', args)
|
|
File.open(filename, 'w') do |f|
|
|
f.write <<~RUBY
|
|
Sequel.seed do
|
|
def run
|
|
# Add seed logic here
|
|
end
|
|
end
|
|
RUBY
|
|
end
|
|
puts "Created seed: #{filename}"
|
|
end
|
|
end
|