3. RoR e database

Ruby On Rails è stato sviluppato implementando con particolare attenzione le funzionalità destinate all’interazione del framework con i db e le informazioni in esse archiviate; tra i numerosi DBMS supportati da RoR, per citare soltanto alcuni di quelli rilsciati sotto licenza Open Source, è possibile fare riferimento a MySQLSQLite e PostgreSQL.

sudo apt-get install mysql-server libmysqlclient-dev libmysql-ruby

Con il quale installeremo mysql.
Infine installiamo sqlite3 anche se non lo utilizziamo,in quanto è una dipendenza necessaria

sudo gem install sqlite3-ruby
sudo apt-get install libsqlite3-dev

Dato che il Database  di riferimento per questa trattazione sarà MySQL, la prima operazione da compiere sarà quella relativa all’installazione della Gem necessaria per il dialogo tra RoR e Mysql, procediamo dando il comando:

gem install mysql

In alternativa (consigliata) è possibile installare la Gem “mysql2”, una libreria veloce e molto stabile per l’interazione con MySQL:

gem install mysql2

Fatto questo, dovremo recarci sulla directory d’installazione di RoR e raggiungere la cartella “project/my_app/config/” precedentemente creata tramite il comando “rails new”, in essa è presente il file “database.yml”; aprendolo con un editor di testo noteremo come di default il progetto presenti una configurazione relativa al DBMS SQLite:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

Quest’ultima dovrà quindi essere modificata in modo da utilizzare MySQL come DB predefinito, prima di fare questo sarà però necessario fare riferimento ai tre ambienti previsti da RoR per l’interazione con le basi di dati:

“development”: è l’ambiente destinato allo sviluppo locale dell’applicazione prima delle fasi di test e di produzione (messa on-line);
“test”: è l’ambiente utilizzabile in seguito alla fase di sviluppo per l’esecuzione dei test automatizzati sull’applicazione prima della fase di produzione;
“production”: è l’ambiente a cui farà riferimento l’applicazione una volta resa pubblicamente disponibile come servizio.

Per modificare il file “database.yml” in modo che questo interagisca con MySQL, potremo quindi utilizzare delle nuove impostazioni di configurazione sul modello delle seguenti:

development:
  adapter: mysql2
  encoding: utf8
  database: my_app_development
  pool: 5
  username: nome_utente
  password: password_utente
  host: localhost
  port: 3306
  socket: /tmp/mysql.sock
test:
  adapter: mysql2
  encoding: utf8
  database: my_app_test
  pool: 5
  username: nome_utente
  password: password_utente
  host: localhost
  port: 3306
  socket: /tmp/mysql.sock
production:
  adapter: mysql2
  encoding: utf8
  database: my_app_production
  pool: 5
  username: nome_utente
  password: password_utente
  host: localhost
  port: 3306
  socket: /tmp/mysql.sock

Note: l’encoding,il socket e pool non sono obbligatori
Una volta effettuate e salvate le modifiche richieste (ricordiamoci di modificare il parametri associati a “username” e “password” con quelli relativi alla nostra installazione di MySQL), RoR ci permetterà di creare i database di sviluppo e test precedentemente definiti da terminale. Per fare ciò utilizzeremo un’istruzione basata sulla Gem “rake”, per prima cosa, quindi, dovremo installare quest’ultima da un qualsiasi percorso sul file system:
Digitiamo il comando:

gem install rake

Rake è in pratica un “command runner”, cioè un tool che ci permetterà di accedere velocemente a comandi Rails utili per lo sviluppo della nostra applicazione e di interagire con la base di dati;
ora finalmente potremo lanciare il comando per la generazione del db dal percorso della nostra applicazione:

C:\Ruby193\project\my_app>rake db:create

 

Tothebit

About Tothebit

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site