Files
bit/app/lib/database.cr
2025-03-20 13:03:15 +01:00

35 lines
704 B
Crystal

require "sqlite3"
require "crecto"
require "micrate"
module App::Lib
class Database
extend Crecto::Repo
Query = Crecto::Repo::Query
config do |conf|
base_url = ENV["DATABASE_URL"]
separator = base_url.includes?("?") ? "&" : "?"
db_url = base_url + separator +
"&journal_mode=WAL" +
"&synchronous=NORMAL" + # Better performance with reasonable safety
"&foreign_keys=true"
conf.uri = db_url
end
if ENV["ENV"] == "development"
Crecto::DbLogger.set_handler(STDOUT)
end
def self.run_migrations
Micrate::DB.connection_url = ENV["DATABASE_URL"]
Micrate::Cli.run_up
end
run_migrations
end
end