Flera databaser till samma applikation på openshift

Jag kör mysql db till appen. När jag kikar på dev.appen.se så vill jag kunna testa och utforska ”vad som helst”, som om jag befann mig i produktion, men utan att jag populerar produktionsdatabasen med skräp, så jag vill att en annan databas används om jag befinner mig på just den adressen.

Detta fungerar för mig:

Logga inpå mysql via phpmyadmin som jag satt upp. Det går givetvis lika bra att logga in via ssh, mysql och på det viset skapa upp en extra databas.

Jag populerade den med data, genom att exportera produktionsdatabasen som den ser ut just nu.

 

Hjälpsamt:

http://stackoverflow.com/questions/21666063/can-i-have-more-than-one-database-per-gear-in-openshift

http://stackoverflow.com/questions/1602901/rails-separate-database-per-subdomain

http://emaxime.com/2014/adding-a-staging-environment-to-rails.html

Live reload

Let go of F5! 🙂

Finally activated live reload for my ruby/rails project 🙂

http://nestacms.com/docs/recipes/automatically-reload-pages-as-you-write

 

Fler resurser på samma tema (vill kolla dessa senare):

http://www.sitepoint.com/automatically-reload-things-guard/

http://railscasts.com/episodes/264-guard?view=asciicast

 

Guard var guuuuld i PHP-projekt där jag själv behövde hålla koll på och concatenera och minifiera filer o.s.v. Nu blir det mer en nice touch, och jag sparar F5 klick.  ^^

Kombinerar det med min test suite senare. 🙂

minify css on Openshift

Update:

It works! After clearing cache, rising asset version nr & adding RAILS_ENV= production to openshift, it serves css-minified. JOY!   😀

Ex: rhc set-env VARIABLE1=VALUE1 VARIABLE2=VALUE2 -a myapp --namespace domain

 

 

Not working yet… still one thing left to try.

Listing relevant links:

https://github.com/twbs/bootstrap-sass/issues/704
https://forums.openshift.com/custom-ruby-on-rails-environments

http://stackoverflow.com/questions/19234986/rails-not-minifying

https://github.com/openshift/origin-community-cartridges/issues/8

http://stackoverflow.com/questions/2715035/rails-env-vs-rails-env

Openshift + rails + apache + Add Expires Headers

Put the .htaccess file inside the ”public” folder (that is checked in with your rails project). Works perfectly! :]

Why: To let browsers know that ”oh that image/resource you’re asking for, it hasn’t changed since last time you were here, so no need to ask for it again, use the one you have already (cache). Great!

(Better user experience (fast load), less traffic (lower costs), and for both those reasons, good for SEO.

 

Also turn off etags:

Header unset ETag
FileETag None

 

migrering för att ändra alla tabeller till utf8_swedish_ci

class MakeUnicodeFriendly < ActiveRecord::Migration
def self.up
alter_database_and_tables_charsets ”utf8”, ”utf8_swedish_ci”
end

def self.down
alter_database_and_tables_charsets
end

private
def self.alter_database_and_tables_charsets charset = default_charset, collation = default_collation
puts ”running me”
puts connection.adapter_name
case connection.adapter_name
when ‘Mysql2’
execute ”ALTER DATABASE #{connection.current_database} CHARACTER SET #{charset} COLLATE #{collation}”

connection.tables.each do |table|
execute ”ALTER TABLE #{table} CONVERT TO CHARACTER SET #{charset} COLLATE #{collation}”
end
else
raise ActiveRecord::IrreversibleMigration.new(”Migration error: Unsupported database for migration to UTF-8 support”)
end
end

def self.default_charset
case connection.adapter_name
when ‘Mysql2’
execute(”show variables like ‘character_set_server'”).fetch_hash[‘Value’]
else
nil
end
end

def self.default_collation
case connection.adapter_name
when ‘Mysql2’
execute(”show variables like ‘collation_server'”).fetch_hash[‘Value’]
else
nil
end
end

def self.connection
ActiveRecord::Base.connection
end
end