Witam Wszystkich serdecznie!
Od jakiegoś czasu staram się nauczyć posługiwania RoR i jak to wyczytałem w jakimś poradniku, to po zapoznaniu się z podstawami, najlepiej zacząć robić jakiś projekt.
jakieś drobne i banalne rzeczy przebrnąłem i rzuciłem się na głęboką wodę - postanowiłem przenieś pewien produkcyjny system.
Stan aktualny:
Baza Firebird, klient napisany C++ pod Windę, aplikacja zainstalowana na serwerze Windows 2008 w chmurze i udostępniana poprzez RDP (Terminal Serwer).
Opłaty za licencje klientów terminalowach małe nie są, ja chcę opanować Ruby on Rails więc… do dzieła
Środowisko developerskie:
Ubuntu 12.04,
Ruby version 2.1.2-p95 (i686-linux)
RubyGems version 2.2.2
Rack version 1.5
Rails version 4.1.1
JavaScript Runtime Node.js (V8)
Active Record version 4.1.1
Action Pack version 4.1.1
Action View version 4.1.1
Action Mailer version 4.1.1
Active Support version 4.1.1
Zgodnie ze znalezionymi informacjami
http://webmaster-blog.pl/2013/01/rails-scaffold-jak-wygenerowac-crud-scaffold-na-podstawie-istniejacej-bazy-mysql/
wstawiłem do pliku Gemfile
gem ‘activerecord-fb-adapter’
gem ‘schema_to_scaffold’,
a w databses.yml
development:
adapter: fb
database: /sciezka/baza.fdb
username: SYSDBA
password: moje_haslo
#password: masterkey
host: localhost
encoding: UTF-8
create: true
i zgodnie z instrukcjami, wykonałem.
bundle install
rake db:schema:dump
czego efektem było utworzenie “schema.rb”, które chciałem wykorzystać jako bazę dla instrukcji:
scaffold -p /ścieżkadoaplikacji/nazwaaplikacji/db/schema.rb
I tutaj nastąpiła konsternacja. Wygenerowane modele tablic są niepełne.
Są tam co prawda instrukcje “create table…” i nawet “add_index …” ale na tym precyzja tego reverse engineering się kończy. A gdzie instrukcje has_many, belongs_to ? Przecież w mojej bazie mam kilkadziesiąt tabel i relacje między nimi!
Moje pytanie jest następujące:
Czy to wina sterownika do Firebirda?
Czy znacie może jakieś inne narzędzie/sposób, który pozwoli precyzyjniej przenieś schemat bazy do pliku schema.rb?
Edit:
W zasadzie, to tytuł jest nieadekwatny, gdyż scaffold -p /ścieżkadoaplikacji/nazwaaplikacji/db/schema.rb nawet nie wykonałem widząc taki schemat.