Bug 32030: DBRev 22.06.00.079
authorTomas Cohen Arazi <tomascohen@theke.io>
Tue, 8 Nov 2022 12:41:13 +0000 (09:41 -0300)
committerTomas Cohen Arazi <tomascohen@theke.io>
Tue, 8 Nov 2022 12:44:53 +0000 (09:44 -0300)
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Koha.pm
installer/data/mysql/atomicupdate/erm.pl [deleted file]
installer/data/mysql/db_revs/220600079.pl [new file with mode: 0755]

diff --git a/Koha.pm b/Koha.pm
index df7f82a..9945988 100644 (file)
--- a/Koha.pm
+++ b/Koha.pm
@@ -29,7 +29,7 @@ use vars qw{ $VERSION };
 # - #4 : the developer version. The 4th number is the database subversion.
 #        used by developers when the database changes. updatedatabase take care of the changes itself
 #        and is automatically called by Auth.pm when needed.
-$VERSION = "22.06.00.078";
+$VERSION = "22.06.00.079";
 
 sub version {
     return $VERSION;
diff --git a/installer/data/mysql/atomicupdate/erm.pl b/installer/data/mysql/atomicupdate/erm.pl
deleted file mode 100755 (executable)
index 99ba899..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-use Modern::Perl;
-
-return {
-    bug_number => "BUG_NUMBER",
-    description => "Some tables for ERM",
-    up => sub {
-        my ($args) = @_;
-        my ($dbh, $out) = @$args{qw(dbh out)};
-
-        $dbh->do(q{
-            INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
-            VALUES ('ERMModule', '0', NULL, 'Enable the E-Resource management module', 'YesNo');
-        });
-
-        $dbh->do(q{
-            INSERT IGNORE INTO userflags (bit, flag, flagdesc, defaulton)
-            VALUES (28, 'erm', 'Manage electronic resources', 0)
-        });
-
-        unless ( TableExists('erm_agreements') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_agreements` (
-                    `agreement_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `vendor_id` INT(11) DEFAULT NULL COMMENT 'foreign key to aqbooksellers',
-                    `name` VARCHAR(255) NOT NULL COMMENT 'name of the agreement',
-                    `description` LONGTEXT DEFAULT NULL COMMENT 'description of the agreement',
-                    `status` VARCHAR(80) NOT NULL COMMENT 'current status of the agreement',
-                    `closure_reason` VARCHAR(80) DEFAULT NULL COMMENT 'reason of the closure',
-                    `is_perpetual` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'is the agreement perpetual',
-                    `renewal_priority` VARCHAR(80) DEFAULT NULL COMMENT 'priority of the renewal',
-                    `license_info` VARCHAR(80) DEFAULT NULL COMMENT 'info about the license',
-                    CONSTRAINT `erm_agreements_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
-                    PRIMARY KEY(`agreement_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
-            VALUES
-                ('ERM_AGREEMENT_STATUS', 1),
-                ('ERM_AGREEMENT_CLOSURE_REASON', 1),
-                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 1)
-            });
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
-            VALUES
-                ('ERM_AGREEMENT_STATUS', 'active', 'Active'),
-                ('ERM_AGREEMENT_STATUS', 'in_negotiation', 'In negotiation'),
-                ('ERM_AGREEMENT_STATUS', 'closed', 'Closed'),
-                ('ERM_AGREEMENT_CLOSURE_REASON', 'expired', 'Expired'),
-                ('ERM_AGREEMENT_CLOSURE_REASON', 'cancelled', 'Cancelled'),
-                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 'for_review', 'For review'),
-                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 'renew', 'Renew'),
-                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 'cancel', 'Cancel')
-        });
-
-        unless ( TableExists('erm_agreement_periods') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_agreement_periods` (
-                    `agreement_period_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
-                    `started_on` DATE NOT NULL COMMENT 'start of the agreement period',
-                    `ended_on` DATE COMMENT 'end of the agreement period',
-                    `cancellation_deadline` DATE DEFAULT NULL COMMENT 'Deadline for the cancellation',
-                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this period',
-                    CONSTRAINT `erm_agreement_periods_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    PRIMARY KEY(`agreement_period_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-        unless ( TableExists('erm_licenses') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_licenses` (
-                    `license_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `vendor_id` INT(11) DEFAULT NULL COMMENT 'foreign key to aqbooksellers',
-                    `name` VARCHAR(255) NOT NULL COMMENT 'name of the license',
-                    `description` LONGTEXT DEFAULT NULL COMMENT 'description of the license',
-                    `type` VARCHAR(80) NOT NULL COMMENT 'type of the license',
-                    `status` VARCHAR(80) NOT NULL COMMENT 'current status of the license',
-                    `started_on` DATE COMMENT 'start of the license',
-                    `ended_on` DATE COMMENT 'end of the license',
-                    CONSTRAINT `erm_licenses_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
-                    PRIMARY KEY(`license_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-        unless ( TableExists('erm_agreement_licenses') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_agreement_licenses` (
-                    `agreement_license_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
-                    `license_id` INT(11) NOT NULL COMMENT 'link to the license',
-                    `status` VARCHAR(80) NOT NULL COMMENT 'current status of the license',
-                    `physical_location` VARCHAR(80) DEFAULT NULL COMMENT 'physical location of the license',
-                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this license',
-                    `uri` varchar(255) DEFAULT NULL COMMENT 'URI of the license',
-                    CONSTRAINT `erm_agreement_licenses_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_agreement_licenses_ibfk_2` FOREIGN KEY (`license_id`) REFERENCES `erm_licenses` (`license_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    PRIMARY KEY(`agreement_license_id`),
-                    UNIQUE KEY `erm_agreement_licenses_uniq` (`agreement_id`, `license_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
-            VALUES
-                ('ERM_LICENSE_TYPE', 1),
-                ('ERM_LICENSE_STATUS', 1),
-                ('ERM_AGREEMENT_LICENSE_STATUS', 1),
-                ('ERM_AGREEMENT_LICENSE_LOCATION', 1);
-        });
-
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
-            VALUES
-                ('ERM_LICENSE_TYPE', 'local', 'Local'),
-                ('ERM_LICENSE_TYPE', 'consortial', 'Consortial'),
-                ('ERM_LICENSE_TYPE', 'national', 'National'),
-                ('ERM_LICENSE_TYPE', 'alliance', 'Alliance'),
-                ('ERM_LICENSE_STATUS', 'in_negotiation', 'In negotiation'),
-                ('ERM_LICENSE_STATUS', 'not_yet_active', 'Not yet active'),
-                ('ERM_LICENSE_STATUS', 'active', 'Active'),
-                ('ERM_LICENSE_STATUS', 'rejected', 'Rejected'),
-                ('ERM_LICENSE_STATUS', 'expired', 'Expired'),
-                ('ERM_AGREEMENT_LICENSE_STATUS', 'controlling', 'Controlling'),
-                ('ERM_AGREEMENT_LICENSE_STATUS', 'future', 'Future'),
-                ('ERM_AGREEMENT_LICENSE_STATUS', 'history', 'Historic'),
-                ('ERM_AGREEMENT_LICENSE_LOCATION', 'filing_cabinet', 'Filing cabinet'),
-                ('ERM_AGREEMENT_LICENSE_LOCATION', 'cupboard', 'Cupboard');
-        });
-
-        unless ( TableExists('erm_user_roles') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_user_roles` (
-                    `agreement_id` INT(11) NULL COMMENT 'link to the agreement',
-                    `license_id` INT(11) NULL COMMENT 'link to the license',
-                    `user_id` INT(11) NOT NULL COMMENT 'link to the user',
-                    `role` VARCHAR(80) NOT NULL COMMENT 'role of the user',
-                    CONSTRAINT `erm_user_roles_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_user_roles_ibfk_2` FOREIGN KEY (`license_id`) REFERENCES `erm_licenses` (`license_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_user_roles_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
-            VALUES
-                ('ERM_USER_ROLES', 1)
-        });
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
-            VALUES
-                ('ERM_USER_ROLES', 'librarian', 'ERM librarian'),
-                ('ERM_USER_ROLES', 'subject_specialist', 'Subject specialist')
-        });
-
-        unless ( TableExists('erm_agreement_relationships') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_agreement_relationships` (
-                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
-                    `related_agreement_id` INT(11) NOT NULL COMMENT 'link to the related agreement',
-                    `relationship` ENUM('supersedes', 'is-superseded-by', 'provides_post-cancellation_access_for', 'has-post-cancellation-access-in', 'tracks_demand-driven_acquisitions_for', 'has-demand-driven-acquisitions-in', 'has_backfile_in', 'has_frontfile_in', 'related_to') NOT NULL COMMENT 'relationship between the two agreements',
-                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this relationship',
-                    CONSTRAINT `erm_agreement_relationships_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_agreement_relationships_ibfk_2` FOREIGN KEY (`related_agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    PRIMARY KEY(`agreement_id`, `related_agreement_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-
-        unless ( TableExists('erm_documents') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_documents` (
-                    `document_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `agreement_id` INT(11) NULL COMMENT 'link to the agreement',
-                    `license_id` INT(11) NULL COMMENT 'link to the agreement',
-                    `file_name` varchar(255) DEFAULT NULL COMMENT 'name of the file',
-                    `file_type` varchar(255) DEFAULT NULL COMMENT 'type of the file',
-                    `file_description` varchar(255) DEFAULT NULL COMMENT 'description of the file',
-                    `file_content` longblob DEFAULT NULL COMMENT 'the content of the file',
-                    `uploaded_on` datetime DEFAULT NULL COMMENT 'datetime when the file as attached',
-                    `physical_location` VARCHAR(255) DEFAULT NULL COMMENT 'physical location of the document',
-                    `uri` varchar(255) DEFAULT NULL COMMENT 'URI of the document',
-                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this relationship',
-                    CONSTRAINT `erm_documents_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_documents_ibfk_2` FOREIGN KEY (`license_id`) REFERENCES `erm_licenses` (`license_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    PRIMARY KEY(`document_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-
-        unless ( TableExists('erm_eholdings_packages') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_eholdings_packages` (
-                    `package_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `vendor_id` INT(11) DEFAULT NULL COMMENT 'foreign key to aqbooksellers',
-                    `name` VARCHAR(255) NOT NULL COMMENT 'name of the package',
-                    `external_id` VARCHAR(255) DEFAULT NULL COMMENT 'External key',
-                    `provider` ENUM('ebsco') DEFAULT NULL COMMENT 'External provider',
-                    `package_type` VARCHAR(80) DEFAULT NULL COMMENT 'type of the package',
-                    `content_type` VARCHAR(80) DEFAULT NULL COMMENT 'type of the package',
-                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this package',
-                    `created_on` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'date of creation of the package',
-                    CONSTRAINT `erm_packages_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
-                    PRIMARY KEY(`package_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-
-        unless ( TableExists('erm_eholdings_packages_agreements') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_eholdings_packages_agreements` (
-                    `package_id` INT(11) NOT NULL COMMENT 'link to the package',
-                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
-                    UNIQUE KEY `erm_eholdings_packages_agreements_uniq` (`package_id`, `agreement_id`),
-                    CONSTRAINT `erm_eholdings_packages_agreements_ibfk_1` FOREIGN KEY (`package_id`) REFERENCES `erm_eholdings_packages` (`package_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_eholdings_packages_agreements_ibfk_2` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-
-        unless ( TableExists('erm_eholdings_titles') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_eholdings_titles` (
-                    `title_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `biblio_id` INT(11) DEFAULT NULL,
-                    `publication_title` VARCHAR(255) DEFAULT NULL,
-                    `external_id` VARCHAR(255) DEFAULT NULL,
-                    `print_identifier` VARCHAR(255) DEFAULT NULL,
-                    `online_identifier` VARCHAR(255) DEFAULT NULL,
-                    `date_first_issue_online` VARCHAR(255) DEFAULT NULL,
-                    `num_first_vol_online` VARCHAR(255) DEFAULT NULL,
-                    `num_first_issue_online` VARCHAR(255) DEFAULT NULL,
-                    `date_last_issue_online` VARCHAR(255) DEFAULT NULL,
-                    `num_last_vol_online` VARCHAR(255) DEFAULT NULL,
-                    `num_last_issue_online` VARCHAR(255) DEFAULT NULL,
-                    `title_url` VARCHAR(255) DEFAULT NULL,
-                    `first_author` VARCHAR(255) DEFAULT NULL,
-                    `embargo_info` VARCHAR(255) DEFAULT NULL,
-                    `coverage_depth` VARCHAR(255) DEFAULT NULL,
-                    `notes` VARCHAR(255) DEFAULT NULL,
-                    `publisher_name` VARCHAR(255) DEFAULT NULL,
-                    `publication_type` VARCHAR(80) DEFAULT NULL,
-                    `date_monograph_published_print` VARCHAR(255) DEFAULT NULL,
-                    `date_monograph_published_online` VARCHAR(255) DEFAULT NULL,
-                    `monograph_volume` VARCHAR(255) DEFAULT NULL,
-                    `monograph_edition` VARCHAR(255) DEFAULT NULL,
-                    `first_editor` VARCHAR(255) DEFAULT NULL,
-                    `parent_publication_title_id` VARCHAR(255) DEFAULT NULL,
-                    `preceeding_publication_title_id` VARCHAR(255) DEFAULT NULL,
-                    `access_type` VARCHAR(255) DEFAULT NULL,
-                    CONSTRAINT `erm_eholdings_titles_ibfk_2` FOREIGN KEY (`biblio_id`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
-                    PRIMARY KEY(`title_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-        unless ( TableExists('erm_eholdings_resources') ) {
-            $dbh->do(q{
-                CREATE TABLE `erm_eholdings_resources` (
-                    `resource_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
-                    `title_id` INT(11) NOT NULL,
-                    `package_id` INT(11) NOT NULL,
-                    `vendor_id` INT(11) DEFAULT NULL,
-                    `started_on` DATE,
-                    `ended_on` DATE,
-                    `proxy` VARCHAR(80) DEFAULT NULL,
-                    UNIQUE KEY `erm_eholdings_resources_uniq` (`title_id`, `package_id`),
-                    CONSTRAINT `erm_eholdings_resources_ibfk_1` FOREIGN KEY (`title_id`) REFERENCES `erm_eholdings_titles` (`title_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_eholdings_resources_ibfk_2` FOREIGN KEY (`package_id`) REFERENCES `erm_eholdings_packages` (`package_id`) ON DELETE CASCADE ON UPDATE CASCADE,
-                    CONSTRAINT `erm_eholdings_resources_ibfk_3` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
-                    PRIMARY KEY(`resource_id`)
-                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-            });
-        }
-
-        unless ( column_exists('aqbooksellers', 'external_id') ) {
-            $dbh->do(q{
-                ALTER TABLE `aqbooksellers`
-                ADD COLUMN `external_id` VARCHAR(255) DEFAULT NULL
-                AFTER `deliverytime`
-            });
-        }
-
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
-            VALUES
-                ('ERM_PACKAGE_TYPE', 1),
-                ('ERM_PACKAGE_CONTENT_TYPE', 1),
-                ('ERM_TITLE_PUBLICATION_TYPE', 1)
-        });
-
-        $dbh->do(q{
-            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
-            VALUES
-                ('ERM_PACKAGE_TYPE', 'local', 'Local'),
-                ('ERM_PACKAGE_TYPE', 'complete', 'Complete'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'AggregatedFullText', 'Aggregated full'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'AbstractAndIndex', 'Abstract and index'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'EBook', 'E-book'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'MixedContent', 'Mixed content'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'EJournal', 'E-journal'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'OnlineReference', 'Online reference'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'Print', 'Print'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'StreamingMedia', 'Streaming media'),
-                ('ERM_PACKAGE_CONTENT_TYPE', 'Unknown', 'Unknown'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'journal', 'Journal'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'newsletter', 'Newsletter'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'report', 'Report'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'proceedings', 'Proceedings'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'website', 'Website'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'newspaper', 'Newspaper'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'unspecified', 'Unspecified'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'book', 'Book'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'ebook', 'E-book'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'bookseries', 'Bookseries'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'database', 'Database'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'thesisdissertation', 'Thesis/Dissertation'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'streamingaudio', 'Streaming audio'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'streamingvideo', 'Streaming video'),
-                ('ERM_TITLE_PUBLICATION_TYPE', 'audiobook', 'AudioBook');
-        });
-
-        $dbh->do(q{
-            INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
-            VALUES ('ERMProviders', 'local', 'local|ebsco', 'Set the providers for the ERM module', 'multiple');
-        });
-        $dbh->do(q{
-            INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
-            VALUES
-            ('ERMProviderEbscoCustomerID', '', '', 'Customer ID for EBSCO', 'free'),
-            ('ERMProviderEbscoApiKey', '', '', 'API key for EBSCO', 'free');
-        });
-
-
-    }
-};
diff --git a/installer/data/mysql/db_revs/220600079.pl b/installer/data/mysql/db_revs/220600079.pl
new file mode 100755 (executable)
index 0000000..91fad4c
--- /dev/null
@@ -0,0 +1,337 @@
+use Modern::Perl;
+
+return {
+    bug_number => "32030",
+    description => "Add an ERM module",
+    up => sub {
+        my ($args) = @_;
+        my ($dbh, $out) = @$args{qw(dbh out)};
+
+        $dbh->do(q{
+            INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
+            VALUES ('ERMModule', '0', NULL, 'Enable the E-Resource management module', 'YesNo');
+        });
+
+        $dbh->do(q{
+            INSERT IGNORE INTO userflags (bit, flag, flagdesc, defaulton)
+            VALUES (28, 'erm', 'Manage electronic resources', 0)
+        });
+
+        unless ( TableExists('erm_agreements') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_agreements` (
+                    `agreement_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `vendor_id` INT(11) DEFAULT NULL COMMENT 'foreign key to aqbooksellers',
+                    `name` VARCHAR(255) NOT NULL COMMENT 'name of the agreement',
+                    `description` LONGTEXT DEFAULT NULL COMMENT 'description of the agreement',
+                    `status` VARCHAR(80) NOT NULL COMMENT 'current status of the agreement',
+                    `closure_reason` VARCHAR(80) DEFAULT NULL COMMENT 'reason of the closure',
+                    `is_perpetual` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'is the agreement perpetual',
+                    `renewal_priority` VARCHAR(80) DEFAULT NULL COMMENT 'priority of the renewal',
+                    `license_info` VARCHAR(80) DEFAULT NULL COMMENT 'info about the license',
+                    CONSTRAINT `erm_agreements_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+                    PRIMARY KEY(`agreement_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
+            VALUES
+                ('ERM_AGREEMENT_STATUS', 1),
+                ('ERM_AGREEMENT_CLOSURE_REASON', 1),
+                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 1)
+            });
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
+            VALUES
+                ('ERM_AGREEMENT_STATUS', 'active', 'Active'),
+                ('ERM_AGREEMENT_STATUS', 'in_negotiation', 'In negotiation'),
+                ('ERM_AGREEMENT_STATUS', 'closed', 'Closed'),
+                ('ERM_AGREEMENT_CLOSURE_REASON', 'expired', 'Expired'),
+                ('ERM_AGREEMENT_CLOSURE_REASON', 'cancelled', 'Cancelled'),
+                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 'for_review', 'For review'),
+                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 'renew', 'Renew'),
+                ('ERM_AGREEMENT_RENEWAL_PRIORITY', 'cancel', 'Cancel')
+        });
+
+        unless ( TableExists('erm_agreement_periods') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_agreement_periods` (
+                    `agreement_period_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
+                    `started_on` DATE NOT NULL COMMENT 'start of the agreement period',
+                    `ended_on` DATE COMMENT 'end of the agreement period',
+                    `cancellation_deadline` DATE DEFAULT NULL COMMENT 'Deadline for the cancellation',
+                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this period',
+                    CONSTRAINT `erm_agreement_periods_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    PRIMARY KEY(`agreement_period_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+        unless ( TableExists('erm_licenses') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_licenses` (
+                    `license_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `vendor_id` INT(11) DEFAULT NULL COMMENT 'foreign key to aqbooksellers',
+                    `name` VARCHAR(255) NOT NULL COMMENT 'name of the license',
+                    `description` LONGTEXT DEFAULT NULL COMMENT 'description of the license',
+                    `type` VARCHAR(80) NOT NULL COMMENT 'type of the license',
+                    `status` VARCHAR(80) NOT NULL COMMENT 'current status of the license',
+                    `started_on` DATE COMMENT 'start of the license',
+                    `ended_on` DATE COMMENT 'end of the license',
+                    CONSTRAINT `erm_licenses_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+                    PRIMARY KEY(`license_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+        unless ( TableExists('erm_agreement_licenses') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_agreement_licenses` (
+                    `agreement_license_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
+                    `license_id` INT(11) NOT NULL COMMENT 'link to the license',
+                    `status` VARCHAR(80) NOT NULL COMMENT 'current status of the license',
+                    `physical_location` VARCHAR(80) DEFAULT NULL COMMENT 'physical location of the license',
+                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this license',
+                    `uri` varchar(255) DEFAULT NULL COMMENT 'URI of the license',
+                    CONSTRAINT `erm_agreement_licenses_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_agreement_licenses_ibfk_2` FOREIGN KEY (`license_id`) REFERENCES `erm_licenses` (`license_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    PRIMARY KEY(`agreement_license_id`),
+                    UNIQUE KEY `erm_agreement_licenses_uniq` (`agreement_id`, `license_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
+            VALUES
+                ('ERM_LICENSE_TYPE', 1),
+                ('ERM_LICENSE_STATUS', 1),
+                ('ERM_AGREEMENT_LICENSE_STATUS', 1),
+                ('ERM_AGREEMENT_LICENSE_LOCATION', 1);
+        });
+
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
+            VALUES
+                ('ERM_LICENSE_TYPE', 'local', 'Local'),
+                ('ERM_LICENSE_TYPE', 'consortial', 'Consortial'),
+                ('ERM_LICENSE_TYPE', 'national', 'National'),
+                ('ERM_LICENSE_TYPE', 'alliance', 'Alliance'),
+                ('ERM_LICENSE_STATUS', 'in_negotiation', 'In negotiation'),
+                ('ERM_LICENSE_STATUS', 'not_yet_active', 'Not yet active'),
+                ('ERM_LICENSE_STATUS', 'active', 'Active'),
+                ('ERM_LICENSE_STATUS', 'rejected', 'Rejected'),
+                ('ERM_LICENSE_STATUS', 'expired', 'Expired'),
+                ('ERM_AGREEMENT_LICENSE_STATUS', 'controlling', 'Controlling'),
+                ('ERM_AGREEMENT_LICENSE_STATUS', 'future', 'Future'),
+                ('ERM_AGREEMENT_LICENSE_STATUS', 'history', 'Historic'),
+                ('ERM_AGREEMENT_LICENSE_LOCATION', 'filing_cabinet', 'Filing cabinet'),
+                ('ERM_AGREEMENT_LICENSE_LOCATION', 'cupboard', 'Cupboard');
+        });
+
+        unless ( TableExists('erm_user_roles') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_user_roles` (
+                    `agreement_id` INT(11) NULL COMMENT 'link to the agreement',
+                    `license_id` INT(11) NULL COMMENT 'link to the license',
+                    `user_id` INT(11) NOT NULL COMMENT 'link to the user',
+                    `role` VARCHAR(80) NOT NULL COMMENT 'role of the user',
+                    CONSTRAINT `erm_user_roles_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_user_roles_ibfk_2` FOREIGN KEY (`license_id`) REFERENCES `erm_licenses` (`license_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_user_roles_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
+            VALUES
+                ('ERM_USER_ROLES', 1)
+        });
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
+            VALUES
+                ('ERM_USER_ROLES', 'librarian', 'ERM librarian'),
+                ('ERM_USER_ROLES', 'subject_specialist', 'Subject specialist')
+        });
+
+        unless ( TableExists('erm_agreement_relationships') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_agreement_relationships` (
+                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
+                    `related_agreement_id` INT(11) NOT NULL COMMENT 'link to the related agreement',
+                    `relationship` ENUM('supersedes', 'is-superseded-by', 'provides_post-cancellation_access_for', 'has-post-cancellation-access-in', 'tracks_demand-driven_acquisitions_for', 'has-demand-driven-acquisitions-in', 'has_backfile_in', 'has_frontfile_in', 'related_to') NOT NULL COMMENT 'relationship between the two agreements',
+                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this relationship',
+                    CONSTRAINT `erm_agreement_relationships_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_agreement_relationships_ibfk_2` FOREIGN KEY (`related_agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    PRIMARY KEY(`agreement_id`, `related_agreement_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+
+        unless ( TableExists('erm_documents') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_documents` (
+                    `document_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `agreement_id` INT(11) NULL COMMENT 'link to the agreement',
+                    `license_id` INT(11) NULL COMMENT 'link to the agreement',
+                    `file_name` varchar(255) DEFAULT NULL COMMENT 'name of the file',
+                    `file_type` varchar(255) DEFAULT NULL COMMENT 'type of the file',
+                    `file_description` varchar(255) DEFAULT NULL COMMENT 'description of the file',
+                    `file_content` longblob DEFAULT NULL COMMENT 'the content of the file',
+                    `uploaded_on` datetime DEFAULT NULL COMMENT 'datetime when the file as attached',
+                    `physical_location` VARCHAR(255) DEFAULT NULL COMMENT 'physical location of the document',
+                    `uri` varchar(255) DEFAULT NULL COMMENT 'URI of the document',
+                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this relationship',
+                    CONSTRAINT `erm_documents_ibfk_1` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_documents_ibfk_2` FOREIGN KEY (`license_id`) REFERENCES `erm_licenses` (`license_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    PRIMARY KEY(`document_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+
+        unless ( TableExists('erm_eholdings_packages') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_eholdings_packages` (
+                    `package_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `vendor_id` INT(11) DEFAULT NULL COMMENT 'foreign key to aqbooksellers',
+                    `name` VARCHAR(255) NOT NULL COMMENT 'name of the package',
+                    `external_id` VARCHAR(255) DEFAULT NULL COMMENT 'External key',
+                    `provider` ENUM('ebsco') DEFAULT NULL COMMENT 'External provider',
+                    `package_type` VARCHAR(80) DEFAULT NULL COMMENT 'type of the package',
+                    `content_type` VARCHAR(80) DEFAULT NULL COMMENT 'type of the package',
+                    `notes` mediumtext DEFAULT NULL COMMENT 'notes about this package',
+                    `created_on` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'date of creation of the package',
+                    CONSTRAINT `erm_packages_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+                    PRIMARY KEY(`package_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+
+        unless ( TableExists('erm_eholdings_packages_agreements') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_eholdings_packages_agreements` (
+                    `package_id` INT(11) NOT NULL COMMENT 'link to the package',
+                    `agreement_id` INT(11) NOT NULL COMMENT 'link to the agreement',
+                    UNIQUE KEY `erm_eholdings_packages_agreements_uniq` (`package_id`, `agreement_id`),
+                    CONSTRAINT `erm_eholdings_packages_agreements_ibfk_1` FOREIGN KEY (`package_id`) REFERENCES `erm_eholdings_packages` (`package_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_eholdings_packages_agreements_ibfk_2` FOREIGN KEY (`agreement_id`) REFERENCES `erm_agreements` (`agreement_id`) ON DELETE CASCADE ON UPDATE CASCADE
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+
+        unless ( TableExists('erm_eholdings_titles') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_eholdings_titles` (
+                    `title_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `biblio_id` INT(11) DEFAULT NULL,
+                    `publication_title` VARCHAR(255) DEFAULT NULL,
+                    `external_id` VARCHAR(255) DEFAULT NULL,
+                    `print_identifier` VARCHAR(255) DEFAULT NULL,
+                    `online_identifier` VARCHAR(255) DEFAULT NULL,
+                    `date_first_issue_online` VARCHAR(255) DEFAULT NULL,
+                    `num_first_vol_online` VARCHAR(255) DEFAULT NULL,
+                    `num_first_issue_online` VARCHAR(255) DEFAULT NULL,
+                    `date_last_issue_online` VARCHAR(255) DEFAULT NULL,
+                    `num_last_vol_online` VARCHAR(255) DEFAULT NULL,
+                    `num_last_issue_online` VARCHAR(255) DEFAULT NULL,
+                    `title_url` VARCHAR(255) DEFAULT NULL,
+                    `first_author` VARCHAR(255) DEFAULT NULL,
+                    `embargo_info` VARCHAR(255) DEFAULT NULL,
+                    `coverage_depth` VARCHAR(255) DEFAULT NULL,
+                    `notes` VARCHAR(255) DEFAULT NULL,
+                    `publisher_name` VARCHAR(255) DEFAULT NULL,
+                    `publication_type` VARCHAR(80) DEFAULT NULL,
+                    `date_monograph_published_print` VARCHAR(255) DEFAULT NULL,
+                    `date_monograph_published_online` VARCHAR(255) DEFAULT NULL,
+                    `monograph_volume` VARCHAR(255) DEFAULT NULL,
+                    `monograph_edition` VARCHAR(255) DEFAULT NULL,
+                    `first_editor` VARCHAR(255) DEFAULT NULL,
+                    `parent_publication_title_id` VARCHAR(255) DEFAULT NULL,
+                    `preceeding_publication_title_id` VARCHAR(255) DEFAULT NULL,
+                    `access_type` VARCHAR(255) DEFAULT NULL,
+                    CONSTRAINT `erm_eholdings_titles_ibfk_2` FOREIGN KEY (`biblio_id`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
+                    PRIMARY KEY(`title_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+        unless ( TableExists('erm_eholdings_resources') ) {
+            $dbh->do(q{
+                CREATE TABLE `erm_eholdings_resources` (
+                    `resource_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+                    `title_id` INT(11) NOT NULL,
+                    `package_id` INT(11) NOT NULL,
+                    `vendor_id` INT(11) DEFAULT NULL,
+                    `started_on` DATE,
+                    `ended_on` DATE,
+                    `proxy` VARCHAR(80) DEFAULT NULL,
+                    UNIQUE KEY `erm_eholdings_resources_uniq` (`title_id`, `package_id`),
+                    CONSTRAINT `erm_eholdings_resources_ibfk_1` FOREIGN KEY (`title_id`) REFERENCES `erm_eholdings_titles` (`title_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_eholdings_resources_ibfk_2` FOREIGN KEY (`package_id`) REFERENCES `erm_eholdings_packages` (`package_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+                    CONSTRAINT `erm_eholdings_resources_ibfk_3` FOREIGN KEY (`vendor_id`) REFERENCES `aqbooksellers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+                    PRIMARY KEY(`resource_id`)
+                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+            });
+        }
+
+        unless ( column_exists('aqbooksellers', 'external_id') ) {
+            $dbh->do(q{
+                ALTER TABLE `aqbooksellers`
+                ADD COLUMN `external_id` VARCHAR(255) DEFAULT NULL
+                AFTER `deliverytime`
+            });
+        }
+
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_value_categories (category_name, is_system)
+            VALUES
+                ('ERM_PACKAGE_TYPE', 1),
+                ('ERM_PACKAGE_CONTENT_TYPE', 1),
+                ('ERM_TITLE_PUBLICATION_TYPE', 1)
+        });
+
+        $dbh->do(q{
+            INSERT IGNORE INTO authorised_values (category, authorised_value, lib)
+            VALUES
+                ('ERM_PACKAGE_TYPE', 'local', 'Local'),
+                ('ERM_PACKAGE_TYPE', 'complete', 'Complete'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'AggregatedFullText', 'Aggregated full'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'AbstractAndIndex', 'Abstract and index'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'EBook', 'E-book'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'MixedContent', 'Mixed content'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'EJournal', 'E-journal'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'OnlineReference', 'Online reference'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'Print', 'Print'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'StreamingMedia', 'Streaming media'),
+                ('ERM_PACKAGE_CONTENT_TYPE', 'Unknown', 'Unknown'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'journal', 'Journal'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'newsletter', 'Newsletter'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'report', 'Report'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'proceedings', 'Proceedings'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'website', 'Website'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'newspaper', 'Newspaper'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'unspecified', 'Unspecified'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'book', 'Book'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'ebook', 'E-book'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'bookseries', 'Bookseries'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'database', 'Database'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'thesisdissertation', 'Thesis/Dissertation'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'streamingaudio', 'Streaming audio'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'streamingvideo', 'Streaming video'),
+                ('ERM_TITLE_PUBLICATION_TYPE', 'audiobook', 'AudioBook');
+        });
+
+        $dbh->do(q{
+            INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
+            VALUES ('ERMProviders', 'local', 'local|ebsco', 'Set the providers for the ERM module', 'multiple');
+        });
+        $dbh->do(q{
+            INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
+            VALUES
+            ('ERMProviderEbscoCustomerID', '', '', 'Customer ID for EBSCO', 'free'),
+            ('ERMProviderEbscoApiKey', '', '', 'API key for EBSCO', 'free');
+        });
+
+
+    }
+};