2023-09-18 16:53:11 -06:00
|
|
|
require 'sequel'
|
2023-09-19 22:54:58 -06:00
|
|
|
require 'fileutils'
|
2023-09-18 16:53:11 -06:00
|
|
|
|
|
|
|
class RepoQuestDBConnector
|
2023-09-19 22:54:58 -06:00
|
|
|
def initialize(db_file = 'repoquest.db')
|
|
|
|
db_path = File.join(Dir.pwd, db_file)
|
|
|
|
|
|
|
|
# Check if SQLite file exists, if not, create it
|
|
|
|
FileUtils.touch(db_path) unless File.exist?(db_path)
|
|
|
|
|
|
|
|
@db = Sequel.connect("sqlite://#{db_path}")
|
|
|
|
rescue Sequel::Error => e
|
|
|
|
puts "Database connection failed: #{e.message}"
|
|
|
|
exit 1
|
2023-09-18 16:53:11 -06:00
|
|
|
end
|
|
|
|
|
2023-09-19 22:54:58 -06:00
|
|
|
def run_migrations(migration_path = 'lib/database/migrations/')
|
2023-09-18 16:53:11 -06:00
|
|
|
Sequel.extension :migration
|
2023-09-19 22:54:58 -06:00
|
|
|
Sequel::Migrator.run(@db, migration_path)
|
|
|
|
rescue Sequel::Error => e
|
|
|
|
puts "Migration failed: #{e.message}"
|
2023-09-18 16:53:11 -06:00
|
|
|
end
|
|
|
|
end
|