diff --git a/CHANGELOG.md b/CHANGELOG.md
index d1049ba..1e0d556 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.5.2 - 2022-08-24
+### Fixed
+ - Typo in (database) Migrations kept Reader working for those who did not already have the correct table in their database
+
## 1.5.1 - 2022-08-24
### Fixed
- Public pages also needed their plugin script changes, oops... fixed.
diff --git a/appinfo/info.xml b/appinfo/info.xml
index a01cad2..4fa99bc 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -30,7 +30,7 @@ See [README] for more exhaustive information on features and potential misfeatur
[README]: https://github.com/Yetangitu/owncloud-apps/blob/master/files_reader/README.md
]]>
- 1.5.1
+ 1.5.2
AGPL
Frank de Lange
diff --git a/lib/Migration/Version015002Date20220924183940.php b/lib/Migration/Version015002Date20220924183940.php
new file mode 100644
index 0000000..52df757
--- /dev/null
+++ b/lib/Migration/Version015002Date20220924183940.php
@@ -0,0 +1,151 @@
+hasTable('reader_bookmarks')) {
+ $table = $schema->createTable('reader_bookmarks');
+ $table->addColumn('id', 'bigint', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ 'length' => 8,
+ 'unsigned' => true,
+ ]);
+ // user ID, maps bookmark to NC/OC user
+ $table->addColumn('user_id', 'string', [
+ 'notnull' => true,
+ 'length' => 64,
+ 'default' => '',
+ ]);
+ // file ID, maps to NC/OC file ID
+ $table->addColumn('file_id', 'bigint', [
+ 'notnull' => true,
+ 'length' => 11,
+ 'unsigned' => true,
+ ]);
+ // type (bookmark, annotation, etc)
+ $table->addColumn('type', 'string', [
+ 'notnull' => true,
+ 'length' => 32,
+ 'default' => '',
+ ]);
+ $table->addColumn('name', 'string', [
+ 'notnull' => true,
+ 'length' => 512,
+ 'default' => '',
+ ]);
+ $table->addColumn('value', 'string', [
+ 'notnull' => true,
+ 'length' => 512,
+ 'default' => '',
+ ]);
+ $table->addColumn('content', 'string', [
+ 'notnull' => false,
+ 'length' => 4096,
+ ]);
+ $table->addColumn('last_modified', 'bigint', [
+ 'notnull' => false,
+ 'length' => 8,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+ $table->setPrimaryKey(['id']);
+ $table->addIndex(['file_id'], 'reader_bookmarks_file_id_index');
+ $table->addIndex(['user_id'], 'reader_bookmarks_user_id_index');
+ $table->addIndex(['name'], 'reader_bookmarks_name_index');
+ }
+
+ if (!$schema->hasTable('reader_preferences')) {
+ $table = $schema->createTable('reader_preferences');
+ $table->addColumn('id', 'bigint', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ 'length' => 8,
+ 'unsigned' => true,
+ ]);
+ // user ID, maps preference to NC/OC user
+ $table->addColumn('user_id', 'string', [
+ 'notnull' => true,
+ 'length' => 64,
+ 'default' => '',
+ ]);
+ // file ID, maps to NC/OC file ID
+ $table->addColumn('file_id', 'bigint', [
+ 'notnull' => true,
+ 'length' => 11,
+ 'unsigned' => true,
+ ]);
+ $table->addColumn('scope', 'string', [
+ 'notnull' => true,
+ 'length' => 32,
+ 'default' => '',
+ ]);
+ $table->addColumn('name', 'string', [
+ 'notnull' => true,
+ 'length' => 128,
+ 'default' => '',
+ ]);
+ $table->addColumn('value', 'string', [
+ 'notnull' => true,
+ 'length' => 4096,
+ 'default' => '',
+ ]);
+ $table->addColumn('last_modified', 'bigint', [
+ 'notnull' => false,
+ 'length' => 8,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+ $table->setPrimaryKey(['id']);
+ $table->addIndex(['file_id'], 'reader_preferences_file_id_index');
+ $table->addIndex(['user_id'], 'reader_preferences_user_id_index');
+ $table->addIndex(['scope'], 'reader_preferences_scope_index');
+ }
+
+ if ($schema->hasTable('reader_prefs')) {
+ $table = $schema->getTable('reader_prefs');
+ $table->dropIndex('reader_prefs_file_id_index');
+ $table->dropIndex('reader_prefs_user_id_index');
+ $table->dropIndex('reader_prefs_scope_index');
+ $schema->dropTable('reader_prefs');
+ }
+ return $schema;
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options) {
+ }
+}