From: Charles McGarvey Date: Thu, 13 Oct 2011 04:39:17 +0000 (-0600) Subject: adding DBIx schema files X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=20e8ae6917f72f3c381ad9d3aca656a99bd4cd7f;p=chaz%2Fchatty adding DBIx schema files --- diff --git a/lib/Chatty/Model/DB.pm b/lib/Chatty/Model/DB.pm new file mode 100644 index 0000000..91b1c19 --- /dev/null +++ b/lib/Chatty/Model/DB.pm @@ -0,0 +1,44 @@ +package Chatty::Model::DB; + +use strict; +use base 'Catalyst::Model::DBIC::Schema'; + +__PACKAGE__->config( + schema_class => 'Chatty::Schema', + + connect_info => { + dsn => 'dbi:SQLite:db/info.db', + user => '', + password => '', + on_connect_do => q{PRAGMA foreign_keys = ON}, + } +); + +=head1 NAME + +Chatty::Model::DB - Catalyst DBIC Schema Model + +=head1 SYNOPSIS + +See L + +=head1 DESCRIPTION + +L Model using schema L + +=head1 GENERATED BY + +Catalyst::Helper::Model::DBIC::Schema - 0.55 + +=head1 AUTHOR + +Charles McGarvey + +=head1 LICENSE + +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +1; diff --git a/lib/Chatty/Schema.pm b/lib/Chatty/Schema.pm new file mode 100644 index 0000000..3d5ca2d --- /dev/null +++ b/lib/Chatty/Schema.pm @@ -0,0 +1,19 @@ +package Chatty::Schema; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +use Moose; +use namespace::autoclean; +extends 'DBIx::Class::Schema'; + +__PACKAGE__->load_namespaces; + + +# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-10-12 22:19:43 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cnsy0B+9E32Gp6UQcsNpuA + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +__PACKAGE__->meta->make_immutable(inline_constructor => 0); +1; diff --git a/lib/Chatty/Schema/Result/Account.pm b/lib/Chatty/Schema/Result/Account.pm new file mode 100644 index 0000000..1589333 --- /dev/null +++ b/lib/Chatty/Schema/Result/Account.pm @@ -0,0 +1,86 @@ +package Chatty::Schema::Result::Account; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +use strict; +use warnings; + +use Moose; +use MooseX::NonMoose; +use namespace::autoclean; +extends 'DBIx::Class::Core'; + +__PACKAGE__->load_components("InflateColumn::DateTime"); + +=head1 NAME + +Chatty::Schema::Result::Account + +=cut + +__PACKAGE__->table("account"); + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +=head2 username + + data_type: 'text' + is_nullable: 1 + +=head2 password + + data_type: 'text' + is_nullable: 1 + +=head2 status + + data_type: 'text' + default_value: 'active' + is_nullable: 1 + +=cut + +__PACKAGE__->add_columns( + "id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "username", + { data_type => "text", is_nullable => 1 }, + "password", + { data_type => "text", is_nullable => 1 }, + "status", + { data_type => "text", default_value => "active", is_nullable => 1 }, +); +__PACKAGE__->set_primary_key("id"); + +=head1 RELATIONS + +=head2 messages + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "messages", + "Chatty::Schema::Result::Message", + { "foreign.author" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-10-12 22:20:29 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:D8HUHJmSfJwylSeDYjfeHA + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +__PACKAGE__->meta->make_immutable; +1; diff --git a/lib/Chatty/Schema/Result/Message.pm b/lib/Chatty/Schema/Result/Message.pm new file mode 100644 index 0000000..56ea868 --- /dev/null +++ b/lib/Chatty/Schema/Result/Message.pm @@ -0,0 +1,91 @@ +package Chatty::Schema::Result::Message; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +use strict; +use warnings; + +use Moose; +use MooseX::NonMoose; +use namespace::autoclean; +extends 'DBIx::Class::Core'; + +__PACKAGE__->load_components("InflateColumn::DateTime"); + +=head1 NAME + +Chatty::Schema::Result::Message + +=cut + +__PACKAGE__->table("message"); + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +=head2 posted + + data_type: 'timestamp' + is_nullable: 1 + +=head2 author + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +=head2 content + + data_type: 'text' + is_nullable: 1 + +=cut + +__PACKAGE__->add_columns( + "id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "posted", + { data_type => "timestamp", is_nullable => 1 }, + "author", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "content", + { data_type => "text", is_nullable => 1 }, +); +__PACKAGE__->set_primary_key("id"); + +=head1 RELATIONS + +=head2 author + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "author", + "Chatty::Schema::Result::Account", + { id => "author" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-10-12 22:20:29 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dORhf3WubIeixtSujgUgrg + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +__PACKAGE__->meta->make_immutable; +1; diff --git a/t/model_DB.t b/t/model_DB.t new file mode 100644 index 0000000..f77912b --- /dev/null +++ b/t/model_DB.t @@ -0,0 +1,8 @@ +use strict; +use warnings; +use Test::More; + + +BEGIN { use_ok 'Chatty::Model::DB' } + +done_testing();