Distinguishing between user databases in each environment to solve problems removing databases

1.0
Fernando Blat 14 years ago
parent 2fcc24baab
commit 405ad943d6

@ -17,7 +17,7 @@ if %(development test).include?(Rails.env)
end
end
task :default => ["db:test:prepare", "spec:models", "spec:cartodb_acceptance"]
task :default => ["test:prepare", "spec:models", "spec:cartodb_acceptance"]
namespace :cartodb do
namespace :api do

@ -77,7 +77,11 @@ class User < Sequel::Model
#### End of Authentication methods
def database_username
"cartodb_user_#{id}"
if Rails.env.production?
"cartodb_user_#{id}"
else
"#{Rails.env}_cartodb_user_#{id}"
end
end
def database_password

@ -13,7 +13,7 @@
<div class="tables_list">
<div class="left">
<div class="top_blue_medium_big">
<h3><strong><%= pluralize(@tables.pagination_record_count, "Public</strong> table", "Public</strong> tables").html_safe %> in cartoDB</h3>
<h3><strong><%= pluralize(@tables.pagination_record_count, "Public</strong> table", "Public</strong> tables").html_safe %> in CartoDB</h3>
<form action="#">
<input type="text" value="" name="table_name" />
<input type="submit" value="" name="q" />
@ -76,10 +76,10 @@
</div>
</div>
</section>
<%= content_for(:mamufas) do %>
<div class="mamufas">
<div class="create_window">
<a href="#close_window" class="close_create"></a>
<div class="inner_">
@ -108,7 +108,7 @@
</form>
</div>
</div>
<div class="settings_window">
<a href="#close_window" class="close_settings"></a>
<div class="inner_">

@ -1,20 +1,21 @@
# coding: UTF-8
## Remove all user databases
tables = Rails::Sequel.connection.tables
Rails::Sequel.connection[
"SELECT datname FROM pg_database WHERE datistemplate IS FALSE AND datallowconn IS TRUE AND datname like 'cartodb_dev_user_%'"
].map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT datname FROM pg_database WHERE datistemplate IS FALSE AND datallowconn IS TRUE AND datname like 'cartodb_test_user_%'"
].map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT datname FROM pg_database WHERE datistemplate IS FALSE AND datallowconn IS TRUE AND datname like 'cartodb_user_%'"
].map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT u.usename FROM pg_catalog.pg_user u"
].map{ |r| r.values.first }.each { |username| Rails::Sequel.connection.run("drop user #{username}") if username =~ /^cartodb_user_/ }
unless Rails.env.test?
tables = Rails::Sequel.connection.tables
Rails::Sequel.connection[
"SELECT datname FROM pg_database WHERE datistemplate IS FALSE AND datallowconn IS TRUE AND datname like 'cartodb_dev_user_%'"
].map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT datname FROM pg_database WHERE datistemplate IS FALSE AND datallowconn IS TRUE AND datname like 'cartodb_test_user_%'"
].map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT datname FROM pg_database WHERE datistemplate IS FALSE AND datallowconn IS TRUE AND datname like 'cartodb_user_%'"
].map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT u.usename FROM pg_catalog.pg_user u"
].map{ |r| r.values.first }.each { |username| Rails::Sequel.connection.run("drop user #{username}") if username =~ /^development_cartodb_user_/ }
end
## Create users

@ -23,7 +23,7 @@ feature "Dashboard", %q{
click_link_or_button('Public tables')
page.should have_content("0 Public tables in cartoDB")
page.should have_content("0 Public tables in CartoDB")
page.should have_content("Ouch! There are not tables for your search")
end
@ -182,7 +182,7 @@ feature "Dashboard", %q{
visit '/dashboard'
click_link_or_button('Public tables')
page.should have_content("21 Public tables in cartoDB")
page.should have_content("21 Public tables in CartoDB")
page.should have_content("BROWSE BY TAGS")
page.should have_css("ul li:eq(1) a span", :text => "vodka")

@ -22,7 +22,7 @@ RSpec.configure do |config|
).map(:datname).each { |user_database_name| Rails::Sequel.connection.run("drop database #{user_database_name}") }
Rails::Sequel.connection[
"SELECT u.usename FROM pg_catalog.pg_user u"
].map{ |r| r.values.first }.each { |username| Rails::Sequel.connection.run("drop user #{username}") if username =~ /^cartodb_user_/ }
].map{ |r| r.values.first }.each { |username| Rails::Sequel.connection.run("drop user #{username}") if username =~ /^test_cartodb_user_/ }
end
end

Loading…
Cancel
Save