fractaledmind / enlitenment

A Rails application template script to lead your app to SQLite enlightenment.
45 stars 4 forks source link

solid_queue puma plugin causes puma to fail if you installed into production #17

Open thedumbtechguy opened 1 week ago

thedumbtechguy commented 1 week ago

Describe the bug When the installation targets production only, we do not setup the database in development.

Therefore, when we attempt to start the server, solid_queue fails with an error about a missing database.

To Reproduce In an existing app, I executed:

bin/rails app:template \
  LOCATION=https://raw.githubusercontent.com/fractaledmind/enlitenment/main/template.rb

Expected behavior N/A

Additional context

logs Puma starting in single mode... * Puma version: 6.4.3 (ruby 3.3.5-p100) ("The Eagle of Durango") * Min threads: 3 * Max threads: 3 * Environment: development * PID: 26736 * Listening on http://127.0.0.1:3000 * Listening on http://[::1]:3000 Use Ctrl-C to stop SolidQueue-0.9.0 Error registering Supervisor (17.1ms) pid: 26744, hostname: "users-MacBook-Pro.local", name: "supervisor-ec2d81d1a0e5712d0e11", error: "ActiveRecord::StatementInvalid Could not find table 'solid_queue_processes'" SolidQueue-0.9.0 Started Supervisor (26.2ms) pid: 26744, hostname: "users-MacBook-Pro.local", process_id: nil, name: "supervisor-ec2d81d1a0e5712d0e11" /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:476:in `table_structure': Could not find table 'solid_queue_processes' (ActiveRecord::StatementInvalid) from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:109:in `columns' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:345:in `block (2 levels) in columns' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:415:in `with_connection' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:344:in `block in columns' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:343:in `fetch' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:343:in `columns' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:354:in `block in columns_hash' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:353:in `fetch' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:353:in `columns_hash' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:54:in `columns_hash' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/schema_cache.rb:198:in `columns_hash' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/model_schema.rb:593:in `load_schema!' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/counter_cache.rb:187:in `load_schema!' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/encryption/encryptable_record.rb:127:in `load_schema!' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/model_schema.rb:540:in `block in load_schema' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/model_schema.rb:537:in `synchronize' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/model_schema.rb:537:in `load_schema' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/model_schema.rb:429:in `columns_hash' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/attributes.rb:244:in `block in _default_attributes' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/connection_handling.rb:296:in `with_connection' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/attributes.rb:243:in `_default_attributes' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activemodel-7.2.2/lib/active_model/attribute_registration.rb:38:in `attribute_types' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/attribute_methods.rb:260:in `_has_attribute?' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/inheritance.rb:61:in `new' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activerecord-7.2.2/lib/active_record/persistence.rb:54:in `create!' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/app/models/solid_queue/process.rb:13:in `block in register' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/notifications.rb:210:in `block in instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/notifications/instrumenter.rb:58:in `instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/notifications.rb:210:in `instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue.rb:69:in `instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/app/models/solid_queue/process.rb:12:in `register' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue/processes/registrable.rb:22:in `register' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:362:in `block in make_lambda' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:208:in `call' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:563:in `block in invoke_after' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:563:in `each' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:563:in `invoke_after' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:111:in `run_callbacks' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue/supervisor.rb:49:in `block in boot' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/notifications.rb:210:in `block in instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/notifications/instrumenter.rb:58:in `instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/activesupport-7.2.2/lib/active_support/notifications.rb:210:in `instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue.rb:69:in `instrument' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue/supervisor.rb:48:in `boot' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue/supervisor.rb:30:in `start' from :90:in `tap' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/solid_queue/supervisor.rb:14:in `start' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/puma/plugin/solid_queue.rb:17:in `block (2 levels) in start' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/puma/plugin/solid_queue.rb:15:in `fork' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/solid_queue-0.9.0/lib/puma/plugin/solid_queue.rb:15:in `block in start' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/puma/events.rb:17:in `block in fire' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/puma/events.rb:17:in `each' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/puma/events.rb:17:in `fire' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/puma/events.rb:46:in `fire_on_booted!' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/puma/single.rb:58:in `run' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/puma/launcher.rb:194:in `run' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.4.3/lib/rack/handler/puma.rb:76:in `run' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rackup-2.2.0/lib/rackup/server.rb:341:in `start' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/commands/server/server_command.rb:38:in `start' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/commands/server/server_command.rb:145:in `block in perform' from :90:in `tap' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/commands/server/server_command.rb:136:in `perform' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/thor-1.3.2/lib/thor/command.rb:28:in `run' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/command/base.rb:178:in `invoke_command' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/command/base.rb:73:in `perform' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/command.rb:71:in `block in invoke' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/command.rb:149:in `with_argv' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/command.rb:69:in `invoke' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.2/lib/rails/commands.rb:18:in `
' from /Users/user/.frum/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require' from /Users/user/.frum/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require' from /Users/user/.frum/versions/3.3.5/lib/ruby/gems/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require' from bin/rails:4:in `
' time=2024-11-10T18:45:18.138Z level=INFO msg=litestream version=v0.3.13 time=2024-11-10T18:45:18.139Z level=ERROR msg="failed to run" error="bucket required for s3 replica" Detected Solid Queue has gone away, stopping Puma... Stopping Litestream... - Gracefully stopping, waiting for requests to finish === puma shutdown: 2024-11-10 18:45:22 +0000 === - Goodbye! Exiting