discourse/migrations/config/schema/intermediate_db/conventions.rb
Gerhard Schlager 554977c7e6 MT: Refactor schema configuration from YAML to Ruby DSL
- Replace the YAML-based schema configuration with a Ruby DSL for defining intermediate database schemas
- Add table builders, conventions, enums, ignored tables, and output config as composable DSL files in `migrations/config/schema/`
- Implement schema resolver that combines DSL config with database introspection to produce resolved schemas
- Add generator that produces SQL schema, Ruby models, and enum files from the resolved schema
- Add scaffolder for bootstrapping new table configs and differ for comparing config against the database
- Add plugin manifest and introspection system to auto-detect plugin-owned columns
- Rewrite all schema CLI commands (`add`, `validate`, `diff`, `generate`, `list`, `ignore`, `refresh-plugins`) to use DSL infrastructure
- Add comprehensive specs and documentation (`migrations/docs/schema-configuration.md`)
- Remove old YAML config, JSON schema, and validation infrastructure
2026-03-19 18:10:26 +01:00

18 lines
355 B
Ruby
Vendored

# frozen_string_literal: true
Migrations::Database::Schema.conventions do
column :id do
rename_to :original_id
type :numeric
end
column :created_at do
required false
end
columns_matching(/.*upload.*_id$/) { type :text }
columns_matching(/.*_id$/) { type :numeric }
# Globally ignored columns
ignore_columns :updated_at
end