From 0300a360a297a048e799920abcb7073c57345b52 Mon Sep 17 00:00:00 2001 From: Will Leinweber Date: Mon, 4 Apr 2011 14:01:48 -0700 Subject: [PATCH 1/4] rescue for old heroku gems --- client.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client.rb b/client.rb index 93d560f..24e3ed1 100644 --- a/client.rb +++ b/client.rb @@ -1,5 +1,9 @@ require "heroku/helpers" -require "heroku/json" +begin + require "heroku/json" +rescue LoadError + require "json/pure" +end require 'digest/sha2' module HerokuPostgresql From f24e7b20150ab0b5083ce328e3f7e072fdbba155 Mon Sep 17 00:00:00 2001 From: Will Leinweber Date: Mon, 4 Apr 2011 15:41:30 -0700 Subject: [PATCH 2/4] only matching plans can fork or track --- addons.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons.rb b/addons.rb index e3cc6d9..9b5120b 100644 --- a/addons.rb +++ b/addons.rb @@ -11,6 +11,11 @@ def configure_addon(label, &install_or_upgrade) db = Resolver.new(val, config_vars) display db.message if db.message abort_with_database_list(val) unless db[:url] + + db_plan = HerokuPostgresql::Client10.new(db[:url]).get_database[:plan] + addon_plan = args.first.split(/:/)[1] || 'ronin' + abort " ! only another #{db_plan} can #{opt} #{db[:name]}" unless db_plan == addon_plan + args << "#{opt}=#{db[:url]}" end end From 126a85ee75c6f7bedfe1135aaa9817d135fc6f1d Mon Sep 17 00:00:00 2001 From: Will Leinweber Date: Fri, 8 Apr 2011 13:25:27 -0700 Subject: [PATCH 3/4] database progress --- pg.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pg.rb b/pg.rb index 77e3cee..881dcb3 100644 --- a/pg.rb +++ b/pg.rb @@ -94,7 +94,14 @@ def wait_for(db) redisplay("The #{name} encountered an error", true) break else - redisplay("#{state.capitalize} #{name} #{spinner(ticks)}", false) + if state == "downloading" + msg = "(#{database[:database_dir_size]} bytes)" + elsif state == "standby" + msg = "(#{database[:current_transaction]}/#{database[:target_transaction]})" + else + msg = '' + end + redisplay("#{state.capitalize} #{name} #{spinner(ticks)} #{msg}", false) end end end From d23a58eeeffdccbd2f2e56461ed9525e0eb14739 Mon Sep 17 00:00:00 2001 From: Will Leinweber Date: Fri, 8 Apr 2011 15:44:07 -0700 Subject: [PATCH 4/4] cannot track/fork version 8 --- addons.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons.rb b/addons.rb index 9b5120b..ff54a70 100644 --- a/addons.rb +++ b/addons.rb @@ -12,9 +12,12 @@ def configure_addon(label, &install_or_upgrade) display db.message if db.message abort_with_database_list(val) unless db[:url] - db_plan = HerokuPostgresql::Client10.new(db[:url]).get_database[:plan] + db = HerokuPostgresql::Client10.new(db[:url]).get_database + db_plan = db[:plan] + version = db[:postgresql_version] + abort " ! PostgreSQL v#{version} cannot be #{opt}ed. Please upgrade to a newer version." if '8' == version.split(/\./).first addon_plan = args.first.split(/:/)[1] || 'ronin' - abort " ! only another #{db_plan} can #{opt} #{db[:name]}" unless db_plan == addon_plan + abort " ! Only another #{db_plan} can #{opt} #{db[:name]}" unless db_plan == addon_plan args << "#{opt}=#{db[:url]}" end