Ich habe ein Problem mit der Verbindung zwischen MySQL und Ruby auf Schienen.Wie stellt man eine Verbindung von MySQL zu Ruby on Rails her, indem man die Datei database.yml richtig verwendet?
Ich habe eine Datenbank in MySQL, und ich muss es in Ruby auf Schienen zu ActiveRecord migrieren. Um das zu tun, muss ich in meinem Ruby on Rails-Projekt die database.yml Datei ändern, wie folgt aus:
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
adapter: mysql2
database: ********
username: ******
password: ******
host: *******
# 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:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3
Offensichtlich sind die *
Zeichen sind Informationen ich nicht zeigen müssen, aber es ist richtig konstruiert, und die Verbindung wird wie üblich hergestellt.
Das Problem kommt in Ruby on Rails Konsole. Die Migration wird nicht ordnungsgemäß ausgeführt und alle IDs sind null, unabhängig von der zu migrierenden Tabelle. Zum Beispiel nehme ich dies aus einer Tabelle:
Alle ID sind null, in einer Tabelle, so kann ich nicht, zum Beispiel, eine Liste des letzten Benutzers ich in der Datenbank eingeführt, weil ich würde eine Bestellung mit der ID machen müssen. Im Gemfile habe ich den Edelstein mysql2
.
Was mache ich falsch?
Ist dies eine zuvor vorhandene Datenbank? – Matt
Ich glaube nicht, dass Ihre Verbindungskonfiguration etwas mit dem 'nil' ID-Problem zu tun hat. Wie sieht dein Modell aus? Was ist mit dem Schema? Sie sollten auch die Standardeinstellungen entfernen, wenn Sie sie nicht verwenden. – tadman
war meine Information hilfreich? –