मैं अपडेट और डिलीट पर कैस्केड का उपयोग करने के लिए, डीबीआईएक्स :: कक्षा का उपयोग कर SQLite3 को विदेशी कुंजी समर्थन सक्षम करना चाहता हूं। मुझे मिला http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Storage/DBI/SQLite.pm प्रलेखन में, लेकिन इसका उपयोग करने के तरीके पर बहुत स्पष्ट नहीं है।
इस प्रकार मैं अपनी स्क्रिप्ट में Schema.pm और कनेक्शन स्ट्रिंग को सेट कर रहा हूं।
# Schema.pm
package MyApp::Schema;
use base qw/DBIx::Class::Schema/;
use strict;
use warnings;
our $VERSION = "0.00001";
__PACKAGE__->load_namespaces();
__PACKAGE__->load_components(qw/Schema::Versioned/);
__PACKAGE__->upgrade_directory("sql/");
# connection string in script
use MyApp::Schema;
my $schema = MyApp::Schema->connect("dbi:SQLite:db/myapp.db");
धन्यवाद,
उत्तर:
जवाब के लिए 5 № 1दोनों
my $schema = MyApp::Schema->connect(
"dbi:SQLite:db/myapp.db",
undef,
undef,
{
on_connect_do => "PRAGMA foreign_keys = ON",
}
);
तथा
my $schema = MyApp::Schema->connect(
dsn => "dbi:SQLite:db/myapp.db",
on_connect_do => "PRAGMA foreign_keys = ON",
);
चाल करना चाहिए
जैसा कि टिप्पणियों में उल्लेख किया गया है, आप भी इसका उपयोग कर सकते हैं
on_connect_call => "use_foreign_keys",
के बजाय
on_connect_do => "PRAGMA foreign_keys = ON",