Tools for using ActiveRecord with or without Rails.
Given configured database connection parameters, Ardb provides a CLI and assorted tools for working with an ActiveRecord database. Ardb is designed to be used with or without Rails.
By default, Ardb looks for database configuration in the config/db.rb
file. You can override this using the ENV["ARDB_DB_FILE"]
env var.
The configuration includes typical database configuration parameters:
# in config/db.rb
require "ardb"
Ardb.configure do |c|
c.logger Logger.new($stdout)
c.root_path File.expand_path("../..", __FILE__)
c.db.adapter "postgresql"
c.db.encoding "unicode"
c.db.min_messages "WARNING"
c.db.url "localhost:5432"
c.db.username "testuser"
c.db.password "secret"
c.db.database "testdb"
end
If using Ardb with Rails, add a config/db.rb
file to have Ardb use Rails's configuration settings:
# in config/db.rb
require_relative "./environment"
require "ardb"
# This Ardb configuration matches Rails's settings.
Ardb.configure do |c|
rails_db_config = Rails.application.config_for("database")
c.root_path = Rails.root
c.logger = Rails.logger
c.schema_format = Rails.application.config.active_record.schema_format || :ruby
c.default_timezone = :utc
c.adapter = rails_db_config["adapter"]
c.host = rails_db_config["host"]
c.port = rails_db_config["port"]
c.username = rails_db_config["username"]
c.password = rails_db_config["password"]
c.database = rails_db_config["database"]
c.encoding = rails_db_config["encoding"]
c.min_messages = rails_db_config["min_messages"]
c.migrations_path = "db/migrate"
c.schema_path = "db/schema"
end
$ ardb --help
Usage: ardb [COMMAND] [options]
Options:
--version
--help
Commands:
connect Connect to the configured DB
create Create the configured DB
drop Drop the configured DB
generate-migration Generate a MIGRATION-NAME migration file
migrate Migrate the configured DB
migrate-up Migrate the configured DB up
migrate-down Migrate the configured DB down
migrate-forward Migrate the configured DB forward
migrate-backward Migrate the configured DB backward
$ ardb connect --help
Usage: ardb connect [options]
Options:
--version
--help
Description:
Connect to the configured DB
$ ardb connect
error: database "some_database" does not exist
$ ardb create
created postgresql db "some_database"
$ ardb connect
connected to postgresql db "some_database"
Use this command to verify the connection parameter configuration is correct.
$ ardb create --help
Usage: ardb create [options]
Options:
--version
--help
Description:
Create the configured DB
$ ardb create
created postgresql db "some_database"
$ ardb create
error: database "some_database" already exists
$ ardb drop --help
Usage: ardb drop [options]
Options:
--version
--help
Description:
Drop the configured DB
$ ardb drop
dropped postgresql db "some_database"
$ ardb drop
error: database "some_database" does not exist
$ ardb generate-migration add_projects --help
Usage: ardb generate-migration MIGRATION-NAME [options]
Options:
--version
--help
Description:
Generate a MIGRATION-NAME migration file
$ ardb generate-migration add_projects
generated /path/to/app/db/migrate/20191222074043_add_projects.rb
$ ardb migrate --help
Usage: ardb migrate [options]
Options:
--version
--help
Description:
Migrate the configured DB
$ ardb migrate
== 20191222074043 AddProjects: migrating ======================================
-- create_table(:projects)
-> 0.0276s
== 20191222074043 AddProjects: migrated (0.0277s) =============================
$ ardb migrate-up --help
Usage: ardb migrate-up [options]
Options:
-t, --target-version VALUE version to migrate to
--version
--help
Description:
Migrate the configured DB up
$ ardb migrate-up
== 20191222074043 AddProjects: migrating ======================================
-- create_table(:projects)
-> 0.0510s
== 20191222074043 AddProjects: migrated (0.0511s) =============================
$ ardb migrate-down --help
Usage: ardb migrate-down [options]
Options:
-t, --target-version VALUE version to migrate to
--version
--help
Description:
Migrate the configured DB down
$ ardb migrate-down
== 20191222074043 AddProjects: reverting ======================================
-- drop_table(:projects)
-> 0.0092s
== 20191222074043 AddProjects: reverted (0.0132s) =============================
$ ardb migrate-forward --help
Usage: ardb migrate-forward [options]
Options:
-s, --steps VALUE number of migrations to migrate
--version
--help
Description:
Migrate the configured DB forward
$ ardb migrate-forward
== 20191222074043 AddProjects: migrating ======================================
-- create_table(:projects)
-> 0.0510s
== 20191222074043 AddProjects: migrated (0.0511s) =============================
$ ardb migrate-backward --help
Usage: ardb migrate-backward [options]
Options:
-s, --steps VALUE number of migrations to migrate
--version
--help
Description:
Migrate the configured DB backward
$ ardb migrate-backward
== 20191222074043 AddProjects: reverting ======================================
-- drop_table(:projects)
-> 0.0092s
== 20191222074043 AddProjects: reverted (0.0132s) =============================
Add this line to your application's Gemfile:
gem "ardb"
And then execute:
$ bundle
Or install it yourself as:
$ gem install ardb
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request