Throw error if renaming non existing database column
authorMatthias Schmidt <gravatronics@live.com>
Sun, 6 Dec 2020 13:08:37 +0000 (14:08 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Sun, 6 Dec 2020 13:08:37 +0000 (14:08 +0100)
wcfsetup/install/files/lib/system/database/table/DatabaseTableChangeProcessor.class.php
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index f245f8d7862bb254d1a1b624d2721a4fdae671cc..329cc79eec37971733c95d445e88d8c35849f660 100644 (file)
@@ -1084,6 +1084,13 @@ class DatabaseTableChangeProcessor {
                                                                ];
                                                        }
                                                }
+                                               else if ($column->getNewName()) {
+                                                       $errors[] = [
+                                                               'columnName' => $column->getName(),
+                                                               'tableName' => $table->getName(),
+                                                               'type' => 'renameNonexistingColumn'
+                                                       ];
+                                               }
                                        }
                                        
                                        foreach ($table->getIndices() as $index) {
index 3ba8b81bb7d8b7881c9e99e6bd8274f192dfd142..3bb03069ca4e80e85b5968be983fca3d9a3e85a5 100644 (file)
@@ -1962,6 +1962,8 @@ Die Datenbestände werden sorgfältig gepflegt, aber es ist nicht ausgeschlossen
                Die Spalte {$error[tableName]}.{$error[columnName]} gehört zu einem anderen Paket und kann deshalb nicht gelöscht werden.
        {else if $error[type] === 'foreignColumnChange'}
                Die Spalte {$error[tableName]}.{$error[columnName]} gehört zu einem anderen Paket und kann deshalb nicht gelöscht werden.
+       {else if $error[type] === 'renameNonexistingColumn'}
+               Die Spalte {$error[tableName]}.{$error[columnName]} existiert nicht und kann deshalb nicht umbenannt werden.
        {else if $error[type] === 'foreignIndexDrop'}
                Der Index {$error[tableName]} ({$error[columnNames]}) gehört zu einem anderen Paket und kann deshalb nicht gelöscht werden.
        {else if $error[type] === 'foreignForeignKeyDrop'}
index 27a8ca13a52358d69a237ad8214895c5edc095d8..c63b536d60e8f6cb258834736371ce37e6f0c22f 100644 (file)
@@ -1946,6 +1946,8 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                The column {$error[tableName]}.{$error[columnName]} belongs to a different package and thus cannot be dropped.
        {else if $error[type] === 'foreignColumnChange'}
                The column {$error[tableName]}.{$error[columnName]} belongs to a different package and thus cannot be dropped.
+       {else if $error[type] === 'renameNonexistingColumn'}
+               The column {$error[tableName]}.{$error[columnName]} does not exist and thus cannot be renamed.
        {else if $error[type] === 'foreignIndexDrop'}
                The index {$error[tableName]} ({$error[columnNames]}) belongs to a different package and thus cannot be dropped.
        {else if $error[type] === 'foreignForeignKeyDrop'}