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