mirror of
https://github.com/discourse/discourse.git
synced 2025-02-12 05:35:14 +08:00
![Gerhard Schlager](/assets/img/avatar_default.png)
* Updates GitHub Actions * Switches from `bundler/inline` to an optional group in the `Gemfile` because the previous solution didn't work well with rspec * Adds the converter framework and tests * Allows loading private converters (see README) * Switches from multiple CLI tools to a single CLI * Makes DB connections reusable and adds a new abstraction for the `IntermediateDB` * `IntermediateDB` acts as an interface for IPC calls when a converter steps runs in parallel (forks). Only the main process writes to the DB. * Includes a simple example implementation of a converter for now.
26 lines
630 B
Ruby
26 lines
630 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Migrations::Database::IntermediateDB
|
|
module LogEntry
|
|
INFO = "info"
|
|
WARNING = "warning"
|
|
ERROR = "error"
|
|
|
|
SQL = <<~SQL
|
|
INSERT INTO log_entries (created_at, type, message, exception, details)
|
|
VALUES (?, ?, ?, ?, ?)
|
|
SQL
|
|
|
|
def self.create!(created_at: Time.now, type:, message:, exception: nil, details: nil)
|
|
::Migrations::Database::IntermediateDB.insert(
|
|
SQL,
|
|
::Migrations::Database.format_datetime(created_at),
|
|
type,
|
|
message,
|
|
exception&.full_message(highlight: false),
|
|
details,
|
|
)
|
|
end
|
|
end
|
|
end
|