From f97b01dd43b8a0e69a553b331c91cdaceaa926ec Mon Sep 17 00:00:00 2001 From: Hugo Peixoto Date: Mon, 20 Jun 2022 20:53:38 +0100 Subject: [PATCH] Configure database --- .gitignore | 2 + config/database.yml | 86 ------------------- config/initializers/generators.rb | 3 + .../20220620195143_enable_extension_uuid.rb | 5 ++ db/schema.rb | 18 ++++ 5 files changed, 28 insertions(+), 86 deletions(-) delete mode 100644 config/database.yml create mode 100644 config/initializers/generators.rb create mode 100644 db/migrate/20220620195143_enable_extension_uuid.rb create mode 100644 db/schema.rb diff --git a/.gitignore b/.gitignore index e16dc71..e61d82b 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ # Ignore master key for decrypting credentials and more. /config/master.key + +/.env*.local diff --git a/config/database.yml b/config/database.yml deleted file mode 100644 index 519e6fe..0000000 --- a/config/database.yml +++ /dev/null @@ -1,86 +0,0 @@ -# PostgreSQL. Versions 9.3 and up are supported. -# -# Install the pg driver: -# gem install pg -# On macOS with Homebrew: -# gem install pg -- --with-pg-config=/usr/local/bin/pg_config -# On macOS with MacPorts: -# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config -# On Windows: -# gem install pg -# Choose the win32 build. -# Install PostgreSQL and put its /bin directory on your path. -# -# Configure Using Gemfile -# gem "pg" -# -default: &default - adapter: postgresql - encoding: unicode - # For details on connection pooling, see Rails configuration guide - # https://guides.rubyonrails.org/configuring.html#database-pooling - pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> - -development: - <<: *default - database: saucy_development - - # The specified database role being used to connect to postgres. - # To create additional roles in postgres see `$ createuser --help`. - # When left blank, postgres will use the default role. This is - # the same name as the operating system user running Rails. - #username: saucy - - # The password associated with the postgres role (username). - #password: - - # Connect on a TCP socket. Omitted by default since the client uses a - # domain socket that doesn't need configuration. Windows does not have - # domain sockets, so uncomment these lines. - #host: localhost - - # The TCP port the server listens on. Defaults to 5432. - # If your server runs on a different port number, change accordingly. - #port: 5432 - - # Schema search path. The server defaults to $user,public - #schema_search_path: myapp,sharedapp,public - - # Minimum log levels, in increasing order: - # debug5, debug4, debug3, debug2, debug1, - # log, notice, warning, error, fatal, and panic - # Defaults to warning. - #min_messages: notice - -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. -test: - <<: *default - database: saucy_test - -# As with config/credentials.yml, you never want to store sensitive information, -# like your database password, in your source code. If your source code is -# ever seen by anyone, they now have access to your database. -# -# Instead, provide the password or a full connection URL as an environment -# variable when you boot the app. For example: -# -# DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase" -# -# If the connection URL is provided in the special DATABASE_URL environment -# variable, Rails will automatically merge its configuration values on top of -# the values provided in this file. Alternatively, you can specify a connection -# URL environment variable explicitly: -# -# production: -# url: <%= ENV["MY_APP_DATABASE_URL"] %> -# -# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database -# for a full overview on how database connection configuration can be specified. -# -production: - <<: *default - database: saucy_production - username: saucy - password: <%= ENV["SAUCY_DATABASE_PASSWORD"] %> diff --git a/config/initializers/generators.rb b/config/initializers/generators.rb new file mode 100644 index 0000000..034fab6 --- /dev/null +++ b/config/initializers/generators.rb @@ -0,0 +1,3 @@ +Rails.application.config.generators do |g| + g.orm :active_record, primary_key_type: :uuid +end diff --git a/db/migrate/20220620195143_enable_extension_uuid.rb b/db/migrate/20220620195143_enable_extension_uuid.rb new file mode 100644 index 0000000..4017933 --- /dev/null +++ b/db/migrate/20220620195143_enable_extension_uuid.rb @@ -0,0 +1,5 @@ +class EnableExtensionUuid < ActiveRecord::Migration[7.0] + def change + enable_extension 'pgcrypto' + end +end diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 0000000..277f025 --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,18 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema[7.0].define(version: 2022_06_20_195143) do + # These are extensions that must be enabled in order to support this database + enable_extension "pgcrypto" + enable_extension "plpgsql" + +end