backend: run migrations only when neccessary
This commit is contained in:
parent
ecb1aca5fc
commit
fb4bdba6c7
6 changed files with 43 additions and 41 deletions
|
@ -1,11 +1,17 @@
|
||||||
module Twenty::Migration
|
module Twenty::Migration
|
||||||
require_relative "migration/create_connections"
|
##
|
||||||
require_relative "migration/create_issues"
|
# @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!
|
def self.run!
|
||||||
CreateConnections.migrate(:up)
|
context = ActiveRecord::MigrationContext.new(migrations_path)
|
||||||
CreateIssues.migrate(:up)
|
context.migrate
|
||||||
rescue
|
|
||||||
warn "#{$!.class}: #{$!.message}"
|
|
||||||
end
|
end
|
||||||
|
ActiveRecord.timestamped_migrations = false
|
||||||
end
|
end
|
||||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -40,7 +40,7 @@ class Twenty::Model < ActiveRecord::Base
|
||||||
|
|
||||||
prepare
|
prepare
|
||||||
connect
|
connect
|
||||||
|
Twenty::Migration.run!
|
||||||
require_relative "model/connection"
|
require_relative "model/connection"
|
||||||
require_relative "model/issue"
|
require_relative "model/issue"
|
||||||
Twenty::Migration.run!
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue