From fb4bdba6c76453df82b35e50572a89c4099f1633 Mon Sep 17 00:00:00 2001 From: 0x1eef <0x1eef@protonmail.com> Date: Wed, 20 Dec 2023 13:37:47 -0300 Subject: [PATCH] backend: run migrations only when neccessary --- .../lib/twenty-backend/migration.rb | 22 ++++++++++++------- .../migration/1_create_connections.rb | 13 +++++++++++ .../migration/2_create_issues.rb | 15 +++++++++++++ .../migration/create_connections.rb | 15 ------------- .../twenty-backend/migration/create_issues.rb | 17 -------------- twenty-backend/lib/twenty-backend/model.rb | 2 +- 6 files changed, 43 insertions(+), 41 deletions(-) create mode 100644 twenty-backend/lib/twenty-backend/migration/1_create_connections.rb create mode 100644 twenty-backend/lib/twenty-backend/migration/2_create_issues.rb delete mode 100644 twenty-backend/lib/twenty-backend/migration/create_connections.rb delete mode 100644 twenty-backend/lib/twenty-backend/migration/create_issues.rb diff --git a/twenty-backend/lib/twenty-backend/migration.rb b/twenty-backend/lib/twenty-backend/migration.rb index d3941da..342dc90 100644 --- a/twenty-backend/lib/twenty-backend/migration.rb +++ b/twenty-backend/lib/twenty-backend/migration.rb @@ -1,11 +1,17 @@ module Twenty::Migration - require_relative "migration/create_connections" - require_relative "migration/create_issues" - - def self.run! - CreateConnections.migrate(:up) - CreateIssues.migrate(:up) - rescue - warn "#{$!.class}: #{$!.message}" + ## + # @return [String] + # Returns the path to twenty's migrations. + def self.migrations_path + [File.join(__dir__, "migration")] end + + ## + # Runs migrations (if neccessary). + # @return [void] + def self.run! + context = ActiveRecord::MigrationContext.new(migrations_path) + context.migrate + end + ActiveRecord.timestamped_migrations = false end diff --git a/twenty-backend/lib/twenty-backend/migration/1_create_connections.rb b/twenty-backend/lib/twenty-backend/migration/1_create_connections.rb new file mode 100644 index 0000000..b10cd82 --- /dev/null +++ b/twenty-backend/lib/twenty-backend/migration/1_create_connections.rb @@ -0,0 +1,13 @@ +class CreateConnections < ActiveRecord::Migration[7.1] + def up + create_table(:connections) do |t| + t.string :name, null: false + t.string :path, null: false + t.timestamps + end + end + + def down + drop_table(:connections) + end +end diff --git a/twenty-backend/lib/twenty-backend/migration/2_create_issues.rb b/twenty-backend/lib/twenty-backend/migration/2_create_issues.rb new file mode 100644 index 0000000..71550aa --- /dev/null +++ b/twenty-backend/lib/twenty-backend/migration/2_create_issues.rb @@ -0,0 +1,15 @@ +class CreateIssues < ActiveRecord::Migration[7.1] + def up + create_table(:issues) do |t| + t.string :title, null: false + t.text :content, null: false + t.string :state, null: false + t.belongs_to :connection, null: false + t.timestamps + end + end + + def down + drop_table(:issues) + end +end diff --git a/twenty-backend/lib/twenty-backend/migration/create_connections.rb b/twenty-backend/lib/twenty-backend/migration/create_connections.rb deleted file mode 100644 index ef08f47..0000000 --- a/twenty-backend/lib/twenty-backend/migration/create_connections.rb +++ /dev/null @@ -1,15 +0,0 @@ -module Twenty::Migration - class CreateConnections < ActiveRecord::Migration[7.1] - def up - create_table(:connections) do |t| - t.string :name, null: false - t.string :path, null: false - t.timestamps - end - end - - def down - drop_table(:connections) - end - end -end diff --git a/twenty-backend/lib/twenty-backend/migration/create_issues.rb b/twenty-backend/lib/twenty-backend/migration/create_issues.rb deleted file mode 100644 index 80c8122..0000000 --- a/twenty-backend/lib/twenty-backend/migration/create_issues.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Twenty::Migration - class CreateIssues < ActiveRecord::Migration[7.1] - def up - create_table(:issues) do |t| - t.string :title, null: false - t.text :content, null: false - t.string :state, null: false - t.belongs_to :connection, null: false - t.timestamps - end - end - - def down - drop_table(:issues) - end - end -end diff --git a/twenty-backend/lib/twenty-backend/model.rb b/twenty-backend/lib/twenty-backend/model.rb index 7b624ef..ec90679 100644 --- a/twenty-backend/lib/twenty-backend/model.rb +++ b/twenty-backend/lib/twenty-backend/model.rb @@ -40,7 +40,7 @@ class Twenty::Model < ActiveRecord::Base prepare connect + Twenty::Migration.run! require_relative "model/connection" require_relative "model/issue" - Twenty::Migration.run! end