1

Ich habe eine Rails 4-App, die Ruby 2.3 verwendet, die ich mit AWS Ebs bereitstellen möchte. Ich zeige die Db-Verbindung zu einer vorhandenen Datenbank, ich verwende den CLI, um zu initialisieren und zu erstellen. Als ich zum Teil halten mache ich erhalte eine Fehlermeldung erhalten, die sagt:Die Rails-App kann nicht auf elastischem Beanstalk bereitgestellt werden

Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/12_db_migration.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

Was natürlich bedeutet die Migration fehlgeschlagen. Als ich die Protokolle überprüft habe, sind bereits Tabellen vorhanden. Ich habe einige Nachforschungen angestellt und festgestellt, dass Sie Einstellungen in .ebextensions/ einfügen können, um festzulegen, dass keine Migrationen ausgeführt werden oder ein Bundle für Test und Entwicklung ausgeführt werden soll. Hier ist meine .ebextensions/ruby-settings.config:

option_settings: BUNDLE_WITHOUT: "test:development" RAILS_ENV: production RACK_ENV: production RAILS_SKIP_MIGRATIONS: true

aber es immer noch nicht einsetzen und gibt die gleiche Fehlermeldung. Die Frage ist, was mache ich hier falsch? Ich habe versucht, diese Konfigurationsdatei auf verschiedene Weisen neu zu schreiben basierend auf Tutorials, die ich auf dieser blog und der AWS-Dokumentseite here fand.

Irgendwelche Gedanken darüber, was ich falsch mache, sind hilfreich, da ich momentan ratlos bin.

Antwort

0

Ich fand, dass die Antwort auf mein Problem war, dass ich .exextensions meinem .gitignore hinzugefügt hatte. Zu Beginn des Prozesses der Einführung war .elastischer Beanstalk hinzugefügt worden, um zu ignorieren, und ich nahm an, dass dasselbe für .expextensions getan werden musste. Eine kleine Aufsicht, die zu vielen Frustrationen führte.

Es ist erwähnenswert, dass, wenn ich ein Problem mit dem Abstand in meinen Konfigurationsdateien hatte, der ebcli einen Fehler auf mich warf. Ich glaube, was für Fehler2007s geschrieben wurde, war gültig, aber andere Formate sind akzeptabel. Zum Beispiel, hier ist mein aktuelles Format für ein meine Konfigurationsdateien:

option_settings: 
    aws:ec2:vpc: 
    VPCId: vpc-xxxxxxxx 
    Subnets: subnet-yyyyyyy,subnet-zzzzzzzz,subnet-wwwwwww,subnet-eeeeeeeee 
    aws:autoscaling:launchconfiguration: 
    SecurityGroups: sg-00000000 

etc ...

würde ich empfehlen, auch .ebextensions mit Ihren Umgebungsvariablen setzen, wie ich es tat:

option_settings: 
    aws:elasticbeanstalk:application:environment: 
    RAILS_SKIP_MIGRATIONS: true 
    RAILS_ENV: production 
2

Ändern Sie Ihre ruby-settings.config nach unten und versuchen Sie dann die Migration.

+1

gleiches Problem und wenn ich überprüfe die Protokolle i dies bemerkt: '++ Export RAILS_SKIP_MIGRATIONS = false' ' ++ RAILS_SKIP_MIGRATIONS = false' – WhyAyala

+1

Gut, der peinlichen wird. Nachdem ich meine zuletzt hochgeladene Zip-Datei meiner App überprüft hatte, stellte ich fest, dass .exextensions nicht enthalten war. Als ich anfing, daran zu arbeiten, dachte ich, es sei notwendig, das Verzeichnis zu .gitignore hinzuzufügen, genauso wie das Verzeichnis .elasticbeanstalk. Alles funktioniert jetzt, wenn ich "eb create" starte – WhyAyala

Verwandte Themen