manque total de documentation rend ce difficile ..Comment créer un schéma Catalyst :: Model :: DBIC :: à partir d'un schéma DBIC ::?
Essentiellement, je
package MyApp::Schema;
sub new_schema {
__PACKAGE__->connect(...)
}
J'ai
package MyCatApp::Model::MyApp;
use Moose;
extends 'Catalyst::Model::DBIC::Schema';
## what here;
_PACKAGE__->make_immutable;
Comment puis-je faire ce travail? Si j'ai dans ma config ...
<Model::MyApp>
schema_class MyApp::Schema
traits Caching
user_defined_schema_accessor foo
</Model::MyApp>
-je obtenir le following error:
BEGIN échoué - compilation avortée à la ligne de MyCatapp.psgi 4, ligne 1. Erreur lors du chargement MyCatapp. psgi: Impossible d'instancier le composant « soit -> config -> {} connect_info doit être défini pour MyCatApp :: Model :: MyApp ou MyApp :: schéma doit avoir défini les informations relient sur elle
Mais en ajoutant sub connect_info {}
. au MyApp::Schema
ne change rien. Cette erreur est générée sur line 480 of this file.
Cette méthode semble regarder $schema_class->storage->connect_info
qui je crois est une méthode sur un objet instancié, et non une fonction dans le paquet. Cependant, si je tente de mettre
__PACKAGE__->config('schema_class', MyApp::Schema->new_schema)
je puis obtenir ...
Erreur lors du chargement: Impossible d'instancier le composant "MyCatApp :: Model :: MyApp", « Attribute (schema_class) ne passe pas la contrainte de type car: La validation a échoué pour 'Catalyst :: Model :: DB :: :: Types :: SchemaClass' avec la valeur MyApp :: Schema = HASH (0xb4a5ff0) dans/usr/local/lib/perl/5.18.2/ligne Moose/Exception.pm 37
Alors, comment dois-je m'y prendre ...
Le modèle ne souhaite pas l'instance de schéma dbic instancié. Il veut la classe et le connect_info afin de l'instancier lui-même, ce que j'ai toujours vu. passer un objet schéma en tant que paramètre à schema_class ne semble pas correct. votre sous-connexion connect_info n'a renvoyé aucune information de connexion. Il veut savoir comment se connecter pour obtenir un objet de schéma connecté. – mikew
le sous-dossier connect_info n'est pas appelé du tout. Afaik, le code, comme lié, est appelé '$ schema_class-> storage-> connect_info'. Vous n'avez qu'un '$ schema_class-> storage' si $ schema_class, est déjà un objet schéma (si vous êtes déjà connecté). –