[RUBY] L'application Sinatra avec ActiveRecord est morte dans Passenger 6.0.5

Qu'est-ce que tu racontes?

J'utilisais une application Sinatra en utilisant ActiveRecord sur CentOS 8 + Apache 2.4 + Phusion Passenger 6.0. La version de Ruby est 2.7.1, mais peut-être que cette version n'a pas vraiment d'importance.

Cela fonctionnait dans Passenger 6.0.4, mais dans 6.0.6, il ne démarre même pas en production. Il fonctionne correctement sur place (local).

Dans le journal des erreurs Apache (/ var / log / httpd / error_log), j'ai trouvé ce qui suit.

'production' database is not configured. Available: [](ActiveRecord::AdapterNotSpecified)

Cause

Apparemment, le changement introduit dans Passenger 6.0.5 en est la cause. Il y a un problème ici. https://github.com/phusion/passenger/issues/2281

Des problèmes similaires peuvent survenir en dehors de Sinatra, mais pas dans Rails (probablement).

Code mort

L'application Sinatra est aussi simple que de rechercher et d'afficher à l'avance les données stockées dans la base de données SQLite3. Les fichiers de base de données ne sont pas spécifiquement divisés entre ceux destinés à la production et ceux destinés au développement.

Où est la connexion

ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: db_file)

Je l'ai écrit comme ça. Le chemin du fichier SQLite3 est affecté à la variable locale db_file.

Réparer

Apparemment, je dois définir ʻActiveRecord :: Base.configurations`, alors faites ce qui précède

ActiveRecord::Base.configurations = {
  "production" => {"adapter" => "sqlite3", "database" => db_file },
  "development" => {"adapter" => "sqlite3", "database" => db_file },
}
ActiveRecord::Base.establish_connection

Je l'ai changé comme ça.

Maintenant, cela fonctionne en production.

Recommended Posts

L'application Sinatra avec ActiveRecord est morte dans Passenger 6.0.5
Décorez votre application Sinatra avec CSS
Créez une API REST avec Apache2 + Passenger + Sinatra.
Essayer avec la déclaration de ressources dans l'application Web
Entraînez-vous à créer une application de chat simple avec Docker + Sinatra
Mise en œuvre du menu déroulant dans l'application d'origine avec Active Hash
Application Janken en Java