sequelize-rails 0.3.0 → 0.4.0

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: 5a4f6a5f212bf94c21dde2f54845199e61451ee395cd523c2f7388c5d84f8a6a
4
- data.tar.gz: b178476afacda06beaa3543202a5686d3563ed1eb88301282037cf9c4d1a8c10
3
+ metadata.gz: 1d9b36457ef8b9c1cfc36554adb7b76a2c6262ac93fc9e6468a0c5e4eae74a04
4
+ data.tar.gz: 46a4e132f2d67a1c2aab16dcf1ec7fa39bb113f1dab39dbf2bb9a0e272af33da
5
5
  SHA512:
6
- metadata.gz: 83259849b58844286b69d29e9f0f94e819d4155ad3923aa9b4b5e1958353ead386980ffaefa20b67cac4522a04b16b4c64dd6396238b64749a8b849c57c538a6
7
- data.tar.gz: 2320fcfa8b3ae4b5c3cf9c39e40abcbd624fa8189e9c2964ba5db47d78fc33cdcb5e06c5366ecbcb8bab04b6b8c44a06cb27ac171d6aa369c78ec17e71fdee73
6
+ metadata.gz: 0d4ff60a438337fe2d9f9f440a74da942b8c9aad250c8a127500cab2ef6082dd5de45c15163abaa8f25e1ce26c7c6ad772fb24edf57995ac4c6c29191512bf4c
7
+ data.tar.gz: '08f935a29a8f038fc824d407cb8d988f0d1c0745f9465e01dbbfe870c9a4c97f021a251b3750a7b4b74e91865846d4a51121039d6aac2c2a10ddce312e72a697'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2021-12-26
3
+ ## [0.4.0] - 2023-08-16
4
4
 
5
- - Initial release
5
+ - Rake tasks will no longer attempt a database connection by default
6
+ - A new `db:connection` rake task has been added for explicitly connecting to the primary database
data/README.md CHANGED
@@ -18,20 +18,26 @@ And then execute:
18
18
 
19
19
  $ bundle install
20
20
 
21
- If you are looking to replace ActiveRecord entirely, you may need to either generate your Rails app using `--skip-active-record` or manually remove references to ActiveRecord in your `Gemfile`, `config/application.rb`, and `config/environments/*.rb` files.
21
+ If you are looking to replace ActiveRecord entirely, you may need to either generate your Rails app using `--skip-active-record` or manually remove references to ActiveRecord in your `Gemfile`, `config/application.rb`, and `config/environments/*.rb` files.
22
22
 
23
23
  ## Features provided by `sequelize-rails`
24
24
 
25
25
  **Database Management**
26
26
 
27
- - [x] [Connectivity](#---database-connectivity) via `config/database.yml`
28
- - [x] [Console](#---database-console) via `rails db`
29
- - [x] [Migrations](#---database-migrations) via `Sequel::Migration`
30
- - [ ] [Migration Generators](#---migration-generators) via `rails generate migration` (not supported yet)
31
- - [x] [Rake tasks](#---database-rake-tasks) via `rails db:*`
27
+ - [x] [Connectivity](#---database-connectivity) via `config/database.yml`
28
+ - [x] [Console](#---database-console) via `rails db`
29
+ - [x] [Migrations](#---database-migrations) via `Sequel::Migration`
30
+ - [ ] [Migration Generators](#---migration-generators) via `rails generate migration` (not supported yet)
31
+ - [x] [Rake tasks](#---database-rake-tasks) via `rails db:*`
32
32
 
33
33
  **Test Suite**
34
- - [x] [Minitest Helpers](#---minitest-helpers)
34
+
35
+ - [x] [Minitest Helpers](#---minitest-helpers)
36
+
37
+ **Rake Helpers**
38
+
39
+ - [x] Does not connect to the primary database in Rake (tasks by default)
40
+ - [x] Allows for explicit connection to the primary database by invoking `db:connection`
35
41
 
36
42
  ## ✅ - Database Connectivity
37
43
 
@@ -75,11 +81,37 @@ my_replica:
75
81
 
76
82
  Additional connections can be retrieved via `Sequel::Rails.connect_to`, such as within the example below:
77
83
 
78
-
79
84
  ```ruby
80
85
  replica_connection = Sequel::Rails.connect_to :my_replica
81
86
  ```
82
87
 
88
+ ### Database Connections in Rake Tasks
89
+
90
+ By default, this gem will not connect to the primary database when running Rake tasks. This is to prevent Rake tasks from accidentally depending on a database connection when one is not necessary. If you would like to connect to the primary database within a Rake task, you can do so by invoking the `db:connection` task, or by calling `Sequel::Rails.connect_to :primary` from within your task.
91
+
92
+ ```ruby
93
+ # Rakefile
94
+
95
+ # no database connections are initialized by default
96
+ task :no_db_connection do
97
+ Sequel::DATABASES # => []
98
+ Sequel::DATABASES.length # => 0
99
+ end
100
+
101
+ # connects to the primary database explicitly
102
+ task :my_task do
103
+ db = Sequel::Rails.connect_to :primary
104
+ Sequel::DATABASES # => [db]
105
+ Sequel::DATABASES.length # => 1
106
+ end
107
+
108
+ # connects to the primary database via the db:connection task
109
+ task :my_other_task => "db:connection" do
110
+ Sequel::DATABASES # => [<primary db connection here>]
111
+ Sequel::DATABASES.length # => 1
112
+ end
113
+ ```
114
+
83
115
  ## ✅ - Database Console
84
116
 
85
117
  You can connect directly to your database via the `rails db` command. This command is similar to the `rails console` command, but instead of loading your application, it will connect directly to the database.
@@ -108,19 +140,20 @@ Rails supports the generation of migrations via the `rails generate migration` c
108
140
 
109
141
  This gem provides a set of rake tasks that are similar to the ActiveRecord tasks. These tasks can be used to create, drop, migrate, and seed your database.
110
142
 
111
- | Task | Description |
112
- | --- | --- |
113
- | `rails db:create` | Creates the database from `DATABASE_URL` or `config/database.yml` for the current `RAILS_ENV` (use `db:create:all` to create all databases in the config). |
114
- | `rails db:drop` | Drops the database from `DATABASE_URL` or `config/database.yml` for the current `RAILS_ENV` (use `db:drop:all` to drop all databases in the config). |
115
- | `rails db:migrate` | Runs database migrations |
116
- | `rails db:migrate:redo` | Rolls back the last migration and re-runs it |
117
- | `rails db:migrate:status` | Displays the status of the database migrations |
118
- | `rails db:prepare` | Runs `db:setup` if the database does not exist or `db:migrate` if it does |
119
- | `rails db:reset` | Runs `db:drop`, `db:setup` |
120
- | `rails db:rollback` | Rolls back the last migration |
121
- | `rails db:setup` | Runs the `db:create`, `db:migrate`, `db:seed` tasks |
143
+ | Task | Description |
144
+ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
145
+ | `rails db:create` | Creates the database from `DATABASE_URL` or `config/database.yml` for the current `RAILS_ENV` (use `db:create:all` to create all databases in the config). |
146
+ | `rails db:drop` | Drops the database from `DATABASE_URL` or `config/database.yml` for the current `RAILS_ENV` (use `db:drop:all` to drop all databases in the config). |
147
+ | `rails db:migrate` | Runs database migrations |
148
+ | `rails db:migrate:redo` | Rolls back the last migration and re-runs it |
149
+ | `rails db:migrate:status` | Displays the status of the database migrations |
150
+ | `rails db:prepare` | Runs `db:setup` if the database does not exist or `db:migrate` if it does |
151
+ | `rails db:reset` | Runs `db:drop`, `db:setup` |
152
+ | `rails db:rollback` | Rolls back the last migration |
153
+ | `rails db:setup` | Runs the `db:create`, `db:migrate`, `db:seed` tasks |
122
154
 
123
155
  ## ✅ - Minitest Helpers
156
+
124
157
  ### `assert_num_queries`
125
158
 
126
159
  This helper can be used to assert that a specific number of database queries are executed within the given block of code.
@@ -174,12 +207,12 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/kenani
174
207
 
175
208
  This repository contains a handful of commands that can be used to facilitate this gem's development. These are:
176
209
 
177
- | Command | Description |
178
- | --- | --- |
179
- | `bin/setup` | Installs the gem's development dependencies |
180
- | `bin/test` | Runs the test suite for each supported Rails version |
181
- | `bin/console` | Starts an interactive console within the gem's test Rails app (located in `test/dummy/`) |
182
- | `bundle exec rake release` | Creates a new release of the gem (version number should be bumped first) |
210
+ | Command | Description |
211
+ | -------------------------- | ---------------------------------------------------------------------------------------- |
212
+ | `bin/setup` | Installs the gem's development dependencies |
213
+ | `bin/test` | Runs the test suite for each supported Rails version |
214
+ | `bin/console` | Starts an interactive console within the gem's test Rails app (located in `test/dummy/`) |
215
+ | `bundle exec rake release` | Creates a new release of the gem (version number should be bumped first) |
183
216
 
184
217
  # License
185
218
 
@@ -187,11 +220,11 @@ The gem is available as open source under the terms of the [MIT License](https:/
187
220
 
188
221
  # Roadmap
189
222
 
190
- - [ ] Support `rails console --sandbox` (auto rollback all transactions)
191
- - [ ] Support logging
192
- - [ ] Support db rake tasks
193
- - [ ] Support reloading (disconnect all connections)
194
- - [ ] Support ActiveRecord plugins / conventions (shims)
195
- - [ ] Support PostgreSQL custom format for dump & restore
196
- - [ ] Support generators (including orm)
197
- - [ ] Support migration generator (and parsed attributes)
223
+ - [ ] Support `rails console --sandbox` (auto rollback all transactions)
224
+ - [ ] Support logging
225
+ - [ ] Support db rake tasks
226
+ - [ ] Support reloading (disconnect all connections)
227
+ - [ ] Support ActiveRecord plugins / conventions (shims)
228
+ - [ ] Support PostgreSQL custom format for dump & restore
229
+ - [ ] Support generators (including orm)
230
+ - [ ] Support migration generator (and parsed attributes)
@@ -51,7 +51,8 @@ module Sequel
51
51
  end
52
52
 
53
53
  initializer "sequel.connection" do
54
- ::Sequel::Rails.connect_to :primary unless ARGV.any? { |c| c.starts_with? "db:" }
54
+ in_rake = Rails.const_defined?("Rake") && Rake.application.top_level_tasks.length > 0
55
+ ::Sequel::Rails.connect_to :primary unless in_rake
55
56
  end
56
57
 
57
58
  # Expose database runtime to controller for logging.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sequel
4
4
  module Rails
5
- VERSION = "0.3.0"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequelize-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenaniah Cerny
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-24 00:00:00.000000000 Z
11
+ date: 2023-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord