umbrellio-sequel-plugins 0.12.0 → 0.12.0.169

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87dd000032a7ff44d8bad71653d2663dcf1237ac0b57550542e99955f94ef089
4
- data.tar.gz: a23cdcb226e924f641994e93b50e87e4f65d8f1af205b2437d548f93d04ebc3c
3
+ metadata.gz: 6a1f6f4eb4543668bd64fc9aaa0f666587d450eeb048bc3f20cb04d17d3cdfad
4
+ data.tar.gz: e2dd754b79b6a68d1eeddd8a282ec654db075c8f623793e8b454ad965358daba
5
5
  SHA512:
6
- metadata.gz: 8766ab1dd01298493e86325b906dd905af008f091bb07ae8ed1017571dc66a80131e31345a03e3fd35f744456c7aa43ec17a66554be9f867742539c40687064a
7
- data.tar.gz: a11d6c78ae9aaf33b88d74b97bfc6ab6e79497fa0ebcb8ef22dc0782303964c4f4683cde30f7c8679f0ceec48918720ad439c3f0da0467534f4fa3dbf4745f1d
6
+ metadata.gz: 22bfdde950888dff4767f1ed733fae0806f5336b00dc065f21be0917d218a02fe7a202ce72dcdea1f46863b06b9067c1aefa675fefedf9aff98270812b78ccda
7
+ data.tar.gz: 83fd34102711a4bb19bb67a7c912ae11f49cdbc346343fb0e98ae96fbc201476c68037c40699d0f53089208d0f5227221e96c5a046118a72a126a229c6893eb0
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :sequel do
4
+ desc "Archive migrations source code"
5
+ task archive_migrations: :environment do
6
+ DB.create_table?(:schema_migrations_sources) do
7
+ column :version, "numeric", primary_key: true
8
+ column :filename, "text", null: false
9
+ column :source, "text", null: false
10
+ end
11
+
12
+ migrations = Rails.root.glob("db/migrate/*.rb").map do |file|
13
+ filename = file.basename.to_s
14
+ { version: filename.to_i, filename: filename, source: file.read }
15
+ end
16
+
17
+ conflict_options = {
18
+ target: :version,
19
+ update: { source: Sequel[:excluded][:source] },
20
+ }
21
+
22
+ DB[:schema_migrations_sources].insert_conflict(**conflict_options).multi_insert(migrations)
23
+ end
24
+ end
@@ -7,20 +7,27 @@ namespace :sequel do
7
7
  task rollback_archived_migrations: :environment do
8
8
  DB.log_info("Finding applied migrations not present in current release...")
9
9
 
10
- archive_path = Pathname.new(ENV.fetch("ARCHIVE_PATH")).expand_path.join("db/migrate")
11
- migrator = Sequel::TimestampMigrator.new(DB, archive_path, allow_missing_migration_files: true)
10
+ Dir.mktmpdir do |tmpdir|
11
+ DB[:schema_migrations_sources].each do |migration|
12
+ path = File.join(tmpdir, migration.fetch(:filename))
13
+ File.write(path, migration.fetch(:source))
14
+ end
15
+
16
+ migrator = Sequel::TimestampMigrator.new(DB, tmpdir, allow_missing_migration_files: true)
12
17
 
13
- applied_migrations = migrator.applied_migrations.map(&:to_i)
14
- filesystem_migrations = Rails.root.glob("db/migrate/*.rb").map { |x| File.basename(x).to_i }
15
- missing_migrations = applied_migrations - filesystem_migrations
18
+ applied_migrations = migrator.applied_migrations.map(&:to_i)
19
+ filesystem_migrations = Rails.root.glob("db/migrate/*.rb").map { |x| File.basename(x).to_i }
20
+ missing_migrations = applied_migrations - filesystem_migrations
16
21
 
17
- if missing_migrations.any?
18
- missing_migrations.each do |migration|
19
- DB.log_info("Rolling back migration #{migration}...")
20
- migrator.undo(migration)
22
+ if missing_migrations.any?
23
+ missing_migrations.each do |migration|
24
+ DB.log_info("Rolling back migration #{migration}...")
25
+ migrator.undo(migration)
26
+ end
27
+ else
28
+ DB.log_info("No migrations found")
29
+ "No migrations found"
21
30
  end
22
- else
23
- DB.log_info("No migrations found")
24
31
  end
25
32
  end
26
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: umbrellio-sequel-plugins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.0.169
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Umbrellio
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-11 00:00:00.000000000 Z
11
+ date: 2023-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -75,6 +75,7 @@ files:
75
75
  - lib/sequel/plugins/upsert.rb
76
76
  - lib/sequel/plugins/with_lock.rb
77
77
  - lib/sequel/timestamp_migrator_undo_extension.rb
78
+ - lib/tasks/sequel/archive_migrations.rake
78
79
  - lib/tasks/sequel/rollback_archived_migrations.rake
79
80
  - lib/tasks/sequel/rollback_missing_migrations.rake
80
81
  - lib/tasks/sequel/undo.rake
@@ -88,7 +89,7 @@ homepage: https://github.com/umbrellio/umbrellio-sequel-plugins
88
89
  licenses:
89
90
  - MIT
90
91
  metadata: {}
91
- post_install_message:
92
+ post_install_message:
92
93
  rdoc_options: []
93
94
  require_paths:
94
95
  - lib
@@ -103,8 +104,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  - !ruby/object:Gem::Version
104
105
  version: '0'
105
106
  requirements: []
106
- rubygems_version: 3.4.15
107
- signing_key:
107
+ rubygems_version: 3.3.5
108
+ signing_key:
108
109
  specification_version: 4
109
110
  summary: Sequel plugins
110
111
  test_files: []