Class: Charming::Database::Commands
- Inherits:
-
Object
- Object
- Charming::Database::Commands
- Defined in:
- lib/charming/database/commands.rb
Overview
Commands implements the runtime side of ‘charming db:COMMAND` (other than `db:install`, which lives in Generators::DatabaseInstaller). It loads the app’s ‘config/database.rb`, delegates the actual work to ActiveRecord, and prints a short status line on success.
Supported commands: db:create, db:migrate, db:rollback [STEP=n], db:drop, db:seed, db:setup, db:reset, db:prepare, db:status, db:version, db:schema:dump, db:schema:load. The target database file is selected by CHARMING_ENV (development, test, production).
Instance Method Summary collapse
-
#initialize(command, out:, destination:, args: []) ⇒ Commands
constructor
command is the subcommand string (e.g., “db:create”).
-
#run ⇒ Object
Dispatches the configured command.
Constructor Details
#initialize(command, out:, destination:, args: []) ⇒ Commands
command is the subcommand string (e.g., “db:create”). args holds extra CLI arguments such as “STEP=2”. out is the status-output stream. destination is the app root for resolving ‘config/database.rb` and `db/`.
19 20 21 22 23 24 |
# File 'lib/charming/database/commands.rb', line 19 def initialize(command, out:, destination:, args: []) @command = command @args = args @out = out @destination = destination end |
Instance Method Details
#run ⇒ Object
Dispatches the configured command. Raises Generators::Error for unknown commands.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/charming/database/commands.rb', line 27 def run case command when "db:create" then create when "db:migrate" then migrate when "db:rollback" then rollback when "db:drop" then drop when "db:seed" then seed when "db:setup" then setup when "db:reset" then reset when "db:prepare" then prepare when "db:status" then status when "db:version" then version when "db:schema:dump" then schema_dump when "db:schema:load" then schema_load else raise Generators::Error, "Unknown database command: #{command}" end end |