Per favore dimmi se è pazzesco, ma in fondo, ho creato un'attività rake personalizzata e, prima che funzioni, dà all'utente un messaggio di avviso:
Warning, please back up your database before continuing
Nel caso in cui qualcosa dovesse andare storto. Ma pensavo che sarebbe stato fantastico:
Warning, please back up your database before continuing. Do you wish to create it now [Y/N]
e premendo Y, il database esistente verrebbe replicato.
Non voglio creare per duplicare le tabelle, voglio letteralmente creare un database nuovo, incontaminato e isolato in modo che la loro architettura sia identica, solo nel caso in cui qualcosa non funzioni.
Tuttavia non voglio alcuna dipendenza, voglio solo usare le librerie incluse con Rails. Potrei avere un semplice esempio di come creare un database vuoto con RoR, se possibile?
Posso creare un nuovo database come questo:
require 'sqlite3'
db = SQLite3::Database.new( "test.db" )
Tuttavia, funzionerà solo se l'utente sta usando sqlite3. Posso individuare il database che stanno utilizzando con
database_type = ActiveRecord::Base.connection.adapter_name #=> sqlite3
e quindi utilizzare un'istruzione case per eseguire comandi leggermente diversi per ogni tipo di database, ma sembra un po 'elaborato e non molto dinamico. (Ogni singolo database dovrà essere pensato in anticipo).
Quindi posso farlo attraverso Active Record?