Class: DbdocEngine::SchemaRbImportService
- Inherits:
-
Object
- Object
- DbdocEngine::SchemaRbImportService
- Defined in:
- app/services/dbdoc_engine/schema_rb_import_service.rb
Constant Summary collapse
- DEFAULT_GROUP_NAME =
"Imported Schema".freeze
- DEFAULT_GROUP_COLOR =
"#6c757d".freeze
- SKIP_TABLES =
%w[ ar_internal_metadata schema_migrations active_storage_blobs active_storage_attachments active_storage_variant_records action_text_rich_texts solid_queue_blocked_executions solid_queue_claimed_executions solid_queue_failed_executions solid_queue_jobs solid_queue_pauses solid_queue_processes solid_queue_ready_executions solid_queue_recurring_executions solid_queue_recurring_tasks solid_queue_scheduled_executions solid_queue_semaphores solid_cache_entries solid_cable_messages ].freeze
Instance Method Summary collapse
- #import! ⇒ Object
-
#initialize(schema_content, imported_by:) ⇒ SchemaRbImportService
constructor
A new instance of SchemaRbImportService.
Constructor Details
#initialize(schema_content, imported_by:) ⇒ SchemaRbImportService
Returns a new instance of SchemaRbImportService.
27 28 29 30 |
# File 'app/services/dbdoc_engine/schema_rb_import_service.rb', line 27 def initialize(schema_content, imported_by:) @schema_content = schema_content @imported_by = imported_by end |
Instance Method Details
#import! ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/services/dbdoc_engine/schema_rb_import_service.rb', line 32 def import! parsed = SchemaRbParserService.new(@schema_content).parse tables_data = parsed[:tables].reject { |t| SKIP_TABLES.include?(t[:table_name]) } raise "No tables found in the schema file." if tables_data.empty? total_columns = 0 ActiveRecord::Base.transaction do clear_existing_data suppress_changelog_callbacks do group = create_default_group total_columns = bulk_import_tables_and_columns(tables_data, group) end log_import_summary(tables_data.size, total_columns) end { status: "ok", tables_count: tables_data.size } rescue => e { status: "error", error: e. } end |