mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-27 15:41:10 +08:00
- 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
18 lines
355 B
Ruby
Vendored
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
|