13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/legion/data/migration.rb', line 13
def migrate(connection = Legion::Data.connection, path = "#{__dir__}/migrations", **)
Legion::Settings[:data][:migrations][:version] = Sequel::Migrator.run(connection, path, **)
log.info("Legion::Data::Migration ran successfully to version #{Legion::Settings[:data][:migrations][:version]}")
Legion::Settings[:data][:migrations][:ran] = true
rescue Sequel::DatabaseError => e
handle_exception(e, level: :error, handled: false, operation: :migrate, path: path)
if e.message.include?('InsufficientPrivilege') || e.message.include?('permission denied')
raise Sequel::DatabaseError,
"#{e.message}\n Hint: the database user lacks CREATE on schema public " \
'(required for PG 15+). Grant via: GRANT CREATE ON SCHEMA public TO <user>;'
end
raise
end
|