From db5d4054202b47d7ea4914d1d20c136bf600043a Mon Sep 17 00:00:00 2001 From: Jamie van Dyke Date: Thu, 26 Mar 2020 16:24:42 +0000 Subject: [PATCH 1/3] Added the ability to handle a database url in database.yml --- lib/parity/backup.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/parity/backup.rb b/lib/parity/backup.rb index 45c870b..3ec06bb 100644 --- a/lib/parity/backup.rb +++ b/lib/parity/backup.rb @@ -6,6 +6,7 @@ class Backup DATABASE_YML_RELATIVE_PATH = "config/database.yml".freeze DEVELOPMENT_ENVIRONMENT_KEY_NAME = "development".freeze DATABASE_KEY_NAME = "database".freeze + DATABASE_URL_KEY_NAME = "url".freeze def initialize(args) @from, @to = args.values_at(:from, :to) @@ -108,9 +109,14 @@ def remote_db_backup_url end def development_db - YAML.load(database_yaml_file). - fetch(DEVELOPMENT_ENVIRONMENT_KEY_NAME). - fetch(DATABASE_KEY_NAME) + environment_block = YAML.load(database_yaml_file). + fetch(DEVELOPMENT_ENVIRONMENT_KEY_NAME) + if environment_block.key?(DATABASE_KEY_NAME) + environment_block.fetch(DATABASE_KEY_NAME) + elsif environment_block.key?(DATABASE_URL_KEY_NAME) + url = environment_block.fetch(DATABASE_URL_KEY_NAME) + URI(url).path.tr('/', '') + end end def database_yaml_file From 962681ab3cc96d54a6b25ae3595dd80a3dad990c Mon Sep 17 00:00:00 2001 From: Jamie van Dyke Date: Thu, 26 Mar 2020 16:59:32 +0000 Subject: [PATCH 2/3] Changes to satisfy the hound --- lib/parity/backup.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/parity/backup.rb b/lib/parity/backup.rb index 3ec06bb..d81ab47 100644 --- a/lib/parity/backup.rb +++ b/lib/parity/backup.rb @@ -109,13 +109,13 @@ def remote_db_backup_url end def development_db - environment_block = YAML.load(database_yaml_file). + environment_block = YAML.safe_load(database_yaml_file). fetch(DEVELOPMENT_ENVIRONMENT_KEY_NAME) if environment_block.key?(DATABASE_KEY_NAME) environment_block.fetch(DATABASE_KEY_NAME) elsif environment_block.key?(DATABASE_URL_KEY_NAME) url = environment_block.fetch(DATABASE_URL_KEY_NAME) - URI(url).path.tr('/', '') + URI(url).path.tr("/", "") end end From af81b547c4279f89e33d3b385d73d098b8be9053 Mon Sep 17 00:00:00 2001 From: Jamie van Dyke Date: Fri, 27 Mar 2020 12:55:06 +0000 Subject: [PATCH 3/3] Added a note to the README that we can use database url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0230429..734a45d 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ heroku git:remote -r staging -a your-staging-app heroku git:remote -r production -a your-production-app ``` * There is a `config/database.yml` file that can be parsed as YAML for - `['development']['database']`. + `['development']['database']` or `['development']['url']`. Pipelines ---------