QuickStart Rafactoring Exercise - Was: creazione di database

dato che ruby-it.org ha dei problemi posto qui il rake rask che ho fatto
per
autocrearmi i database a partire da database.yml. buon refactoring :slight_smile:

funziona con MySql, assumendo password/uid a null, insomma con i
settaggi di
InstantRails. funziona lanciandolo dalla root del progetto. funziona se
e
solo se il tuo database server contiene il database di default ‘mysql’
(questo perchè devo collegarmi a un db, per poter creare un db!). funziona
solo durante i giorni che sono anche numeri primi :slight_smile:

il file va salvato come create_db.rake sotto lib/tasks

PS: manca anche un altro task che lanci questo e lanci le migrations.


desc ‘Create Initial Databases, locally, with no uid/pwd, on MySql dbs’
task :create_dbs => :environment do

db_cfg = YAML.load(File.read(“config/database.yml”))

databases = [ db_cfg[‘development’], db_cfg[‘production’],
db_cfg[‘test’]
]

unless databases.all? {|db| db[‘adapter’] == ‘mysql’}
raise “this works only with mysql adapters”
end

databases.each do |db|

if db['adapter'] == 'mysql'
  default_database = 'mysql'
end

ActiveRecord::Base.establish_connection(
  :adapter  => db['adapter'],
  :database => default_database
)

ActiveRecord::Base.connection.create_database db['database']

end
end

forse l’orrore del mio codice non era sufficiente. vediamo se questo
provoca
qualche suggerimento…

justdoit.rake

desc ‘Create Initial Databases, run Migrations’
task :justdoit => :environment do
%x{rake create_dbs}
%x{rake migrate }
end

On 10/30/06, chiaro scuro [email protected] wrote:

il file va salvato come create_db.rake sotto lib/tasks
databases = [ db_cfg[‘development’], db_cfg[‘production’],
end


Chiaroscuro

: : i’m a miner : : | therubymine.com

Alle 20:20, lunedì 30 ottobre 2006, chiaro scuro ha scritto:

forse l’orrore del mio codice non era sufficiente. vediamo se questo
provoca qualche suggerimento…

justdoit.rake

desc ‘Create Initial Databases, run Migrations’
task :justdoit => :environment do
%x{rake create_dbs}
%x{rake migrate }
end

uhm… io pensavo più ad un qualcosa integrato in rails…
una paginetta con cui si possono decidere dei valori base.

ad esempio
su un programma con un sistema di autenticazione particolare (RBAC, ACL)
impostare alcuni utenti di default ecc ecc

per quanto riguarda la creazione del database… sarebbe molto comodo
fare un
qualcosa di generico, anche se all’inizio si potrebbe provare con sqlite

certo, ma lo scopo dell’esercizio è che si fa un pezzo per volta :slight_smile: io ho
fatto il minimo che serve a me e funziona. e dovrebbe andare per chi ha
instantrails installato. altre cose non le ho fatte o perchè non mi
servivano o perchè non le so fare. Ad esempio, potresti aggiungere parti
di
codice per capire con che db abbiamo a che fare, o per rimuvere gli
orrendi
%x{…}

On 10/31/06, kalos [email protected] wrote:

%x{rake migrate }
un
qualcosa di generico, anche se all’inizio si potrebbe provare con sqlite


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Chiaroscuro

: : i’m a miner : : | therubymine.com

Alle 23:05, lunedì 30 ottobre 2006, chiaro scuro ha scritto:

certo, ma lo scopo dell’esercizio è che si fa un pezzo per volta :slight_smile: io ho
fatto il minimo che serve a me e funziona. e dovrebbe andare per chi ha
instantrails installato. altre cose non le ho fatte o perchè non mi
servivano o perchè non le so fare. Ad esempio, potresti aggiungere parti
di codice per capire con che db abbiamo a che fare, o per rimuvere gli
orrendi %x{…}

con rake purtroppo non posso esserti molto di aiuto

per quanto riguarda il tipo di db lo farei scegliere nella solita
paginetta.

io avevo pensato a questa paginetta come un qualcosa che carica il db, o
anche
solo la struttura, e permette di aggiungere valori ecc e magari dopo
avviare
le migration

scusa… mi sono espresso male nella precedente email

ah poi se vuoi/devi usare rake, credo che la soluzione migliore sia
quella di
chiedere all’utente che db utilizzare

scusa se non butto giù nessun pezzo di codice… ma sono alle prese con il
fastum gel!

Ho visto questo plugin (da linea di comando) che a quanto pare permette
di
installare in pochi secondi Typo. Forse potrebbe avere a che fare con
questa
idea, forse no… Lascio il link a chi voglia curiosare :slight_smile:

On 11/1/06, Massimiliano M. [email protected] wrote:

l’utente accede gli viene presentata una form in cui specificare il
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Andrea R.

: : i’m a miner : : | therubymine.com

uhm… io pensavo più ad un qualcosa integrato in rails…
una paginetta con cui si possono decidere dei valori base.

certo, ma lo scopo dell’esercizio è che si fa un pezzo per volta :slight_smile:

Mi sa che i pezzi che dici tu non portano al risultato che dice lui. :wink:

Riguardo l’idea di kalos, è ottima, ho incontrato diversi programmi in
PHP che fanno così (mediawiki, egroupware, …), la prima volta che
l’utente accede gli viene presentata una form in cui specificare il
database e altre cose che vanno configurate solo all’inizio.
Compatibile con il tuo caso d’uso (magari con il default su sqlite) e
con quello di produzione.

Mi sembra che le possibili soluzioni a questo problema creascano come i
funghi in questo periodo.
Date un occhiata qui
http://www.rubyinside.com/distributing-a-rails-application-as-a-single-file-289.html

A quanto sembra c’è la possibilità di creare un eseguibile una Rails
application senza avere ruby e rails. Non ho capito però se ti danno anche
il db.

Sicuramente non è brillante come la nostra idea ma per win è molto comodo :slight_smile:

On 11/2/06, Andrea R. [email protected] wrote:

uhm… io pensavo più ad un qualcosa integrato in rails…
database e altre cose che vanno configurate solo all’inizio.
http://lists.ruby-it.org/mailman/listinfo/ml


Andrea R.

: : i’m a miner : : | therubymine.com


Andrea R.

: : i’m a miner : : | therubymine.com