From 9b008cfcb6b59597da4b4a1fe0f7b4b2f085a248 Mon Sep 17 00:00:00 2001 From: Ere Maijala Date: Wed, 20 Feb 2019 16:56:55 +0200 Subject: [PATCH] Bug 20447: DBIX schema changes Signed-off-by: Michal Denar Signed-off-by: Michal Denar --- Koha/Schema/Result/Biblio.pm | 25 +++- Koha/Schema/Result/Branch.pm | 27 ++-- Koha/Schema/Result/Holding.pm | 221 +++++++++++++++++++++++++++++++++ Koha/Schema/Result/HoldingsMetadata.pm | 138 ++++++++++++++++++++ Koha/Schema/Result/Item.pm | 36 +++++- 5 files changed, 430 insertions(+), 17 deletions(-) create mode 100644 Koha/Schema/Result/Holding.pm create mode 100644 Koha/Schema/Result/HoldingsMetadata.pm diff --git a/Koha/Schema/Result/Biblio.pm b/Koha/Schema/Result/Biblio.pm index 53e806b81f..d1948624fb 100644 --- a/Koha/Schema/Result/Biblio.pm +++ b/Koha/Schema/Result/Biblio.pm @@ -75,7 +75,7 @@ __PACKAGE__->table("biblio"); data_type: 'timestamp' datetime_undef_if_invalid: 1 - default_value: current_timestamp + default_value: 'current_timestamp()' is_nullable: 0 =head2 datecreated @@ -114,7 +114,7 @@ __PACKAGE__->add_columns( { data_type => "timestamp", datetime_undef_if_invalid => 1, - default_value => \"current_timestamp", + default_value => "current_timestamp()", is_nullable => 0, }, "datecreated", @@ -227,6 +227,21 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +=head2 holdings + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "holdings", + "Koha::Schema::Result::Holding", + { "foreign.biblionumber" => "self.biblionumber" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + =head2 items Type: has_many @@ -363,7 +378,9 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07046 @ 2019-03-11 12:56:41 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ebn7Szfm8/HbrdAc7ekTnA +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-04-02 12:20:18 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:sEYb+MJ3x/UIPu0teELg7g + +# You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/Koha/Schema/Result/Branch.pm b/Koha/Schema/Result/Branch.pm index 40d54c0f09..b5146c172f 100644 --- a/Koha/Schema/Result/Branch.pm +++ b/Koha/Schema/Result/Branch.pm @@ -526,6 +526,21 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +=head2 holdings + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "holdings", + "Koha::Schema::Result::Holding", + { "foreign.holdingbranch" => "self.branchcode" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + =head2 illrequests Type: has_many @@ -677,15 +692,9 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07046 @ 2019-03-11 12:56:41 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:pKohWwsuUHcZSlGDj7zmcw - -__PACKAGE__->add_columns( - '+pickup_location' => { is_boolean => 1 } -); +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-04-02 12:20:18 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3ZyvuYcxoY0YA3VZA8X9/A -sub koha_objects_class { - 'Koha::Libraries'; -} +# You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/Koha/Schema/Result/Holding.pm b/Koha/Schema/Result/Holding.pm new file mode 100644 index 0000000000..683bbb99dc --- /dev/null +++ b/Koha/Schema/Result/Holding.pm @@ -0,0 +1,221 @@ +use utf8; +package Koha::Schema::Result::Holding; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::Holding + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("holdings"); + +=head1 ACCESSORS + +=head2 holding_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +=head2 biblionumber + + data_type: 'integer' + default_value: 0 + is_foreign_key: 1 + is_nullable: 0 + +=head2 frameworkcode + + data_type: 'varchar' + default_value: (empty string) + is_nullable: 0 + size: 4 + +=head2 holdingbranch + + data_type: 'varchar' + is_foreign_key: 1 + is_nullable: 1 + size: 10 + +=head2 location + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +=head2 ccode + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +=head2 callnumber + + data_type: 'varchar' + is_nullable: 1 + size: 255 + +=head2 suppress + + data_type: 'tinyint' + is_nullable: 1 + +=head2 timestamp + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: 'current_timestamp()' + is_nullable: 0 + +=head2 datecreated + + data_type: 'date' + datetime_undef_if_invalid: 1 + is_nullable: 0 + +=head2 deleted_on + + data_type: 'datetime' + datetime_undef_if_invalid: 1 + is_nullable: 1 + +=cut + +__PACKAGE__->add_columns( + "holding_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "biblionumber", + { + data_type => "integer", + default_value => 0, + is_foreign_key => 1, + is_nullable => 0, + }, + "frameworkcode", + { data_type => "varchar", default_value => "", is_nullable => 0, size => 4 }, + "holdingbranch", + { data_type => "varchar", is_foreign_key => 1, is_nullable => 1, size => 10 }, + "location", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "ccode", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "callnumber", + { data_type => "varchar", is_nullable => 1, size => 255 }, + "suppress", + { data_type => "tinyint", is_nullable => 1 }, + "timestamp", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => "current_timestamp()", + is_nullable => 0, + }, + "datecreated", + { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 0 }, + "deleted_on", + { + data_type => "datetime", + datetime_undef_if_invalid => 1, + is_nullable => 1, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("holding_id"); + +=head1 RELATIONS + +=head2 biblionumber + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "biblionumber", + "Koha::Schema::Result::Biblio", + { biblionumber => "biblionumber" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + +=head2 holdingbranch + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "holdingbranch", + "Koha::Schema::Result::Branch", + { branchcode => "holdingbranch" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "RESTRICT", + on_update => "CASCADE", + }, +); + +=head2 holdings_metadatas + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "holdings_metadatas", + "Koha::Schema::Result::HoldingsMetadata", + { "foreign.holding_id" => "self.holding_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 items + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "items", + "Koha::Schema::Result::Item", + { "foreign.holding_id" => "self.holding_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-02-20 16:55:21 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:euhmcjiKZIgn7oueD8D9mQ + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/Koha/Schema/Result/HoldingsMetadata.pm b/Koha/Schema/Result/HoldingsMetadata.pm new file mode 100644 index 0000000000..42d7f886e5 --- /dev/null +++ b/Koha/Schema/Result/HoldingsMetadata.pm @@ -0,0 +1,138 @@ +use utf8; +package Koha::Schema::Result::HoldingsMetadata; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::HoldingsMetadata + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("holdings_metadata"); + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +=head2 holding_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 0 + +=head2 format + + data_type: 'varchar' + is_nullable: 0 + size: 16 + +=head2 schema + + data_type: 'varchar' + is_nullable: 0 + size: 16 + +=head2 metadata + + data_type: 'longtext' + is_nullable: 0 + +=head2 deleted_on + + data_type: 'datetime' + datetime_undef_if_invalid: 1 + is_nullable: 1 + +=cut + +__PACKAGE__->add_columns( + "id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "holding_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "format", + { data_type => "varchar", is_nullable => 0, size => 16 }, + "schema", + { data_type => "varchar", is_nullable => 0, size => 16 }, + "metadata", + { data_type => "longtext", is_nullable => 0 }, + "deleted_on", + { + data_type => "datetime", + datetime_undef_if_invalid => 1, + is_nullable => 1, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("id"); + +=head1 UNIQUE CONSTRAINTS + +=head2 C + +=over 4 + +=item * L + +=item * L + +=item * L + +=back + +=cut + +__PACKAGE__->add_unique_constraint( + "holdings_metadata_uniq_key", + ["holding_id", "format", "schema"], +); + +=head1 RELATIONS + +=head2 holding + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "holding", + "Koha::Schema::Result::Holding", + { holding_id => "holding_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-02-20 16:55:21 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:42bY17ncjs1OZKH23z4SgQ + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/Koha/Schema/Result/Item.pm b/Koha/Schema/Result/Item.pm index 106ebd2edb..493e3fd82d 100644 --- a/Koha/Schema/Result/Item.pm +++ b/Koha/Schema/Result/Item.pm @@ -202,7 +202,7 @@ __PACKAGE__->table("items"); data_type: 'timestamp' datetime_undef_if_invalid: 1 - default_value: current_timestamp + default_value: 'current_timestamp()' is_nullable: 0 =head2 location @@ -286,6 +286,12 @@ __PACKAGE__->table("items"); is_nullable: 1 size: 32 +=head2 holding_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + =cut __PACKAGE__->add_columns( @@ -375,7 +381,7 @@ __PACKAGE__->add_columns( { data_type => "timestamp", datetime_undef_if_invalid => 1, - default_value => \"current_timestamp", + default_value => "current_timestamp()", is_nullable => 0, }, "location", @@ -406,6 +412,8 @@ __PACKAGE__->add_columns( { data_type => "varchar", is_nullable => 1, size => 32 }, "new_status", { data_type => "varchar", is_nullable => 1, size => 32 }, + "holding_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, ); =head1 PRIMARY KEY @@ -556,6 +564,26 @@ __PACKAGE__->might_have( { cascade_copy => 0, cascade_delete => 0 }, ); +=head2 holding + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "holding", + "Koha::Schema::Result::Holding", + { holding_id => "holding_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + =head2 holdingbranch Type: belongs_to @@ -702,8 +730,8 @@ __PACKAGE__->might_have( ); -# Created by DBIx::Class::Schema::Loader v0.07042 @ 2018-10-09 15:50:42 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:PQvA8qoxvTe4In5/oa5WIQ +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-02-20 16:49:09 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:YyBBnr/pP/jDhq4iA0HGGA __PACKAGE__->belongs_to( biblioitem => "Koha::Schema::Result::Biblioitem", "biblioitemnumber" ); -- 2.11.0