yakamara / yform

YForm für REDAXO 5 – Formulare im Frontend und Backend mit Verwaltung von Datenbank-Tabellen.
MIT License
77 stars 55 forks source link

Foreign Keys #1395

Open tbaddade opened 1 year ago

tbaddade commented 1 year ago

Sollte YForm selbstständig machen.

siehe auch #1244

alxndr-w commented 1 year ago

Ich melde mich hier nochmal, in Bezug auf den Import von Tablesets: die haben bei mir nicht mehr funktioniert, wenn ich Fremdschlüssel verwende, obwohl das Tableset gleich zu den bereits existierenden YForm-Tabellen sind (z.b. bei einem Add-on Update)

alxndr-w commented 1 year ago

Hier noch einer - beim Ändern von Felddefinitionen

Error while executing statement "ALTER TABLE `rex_event_date_registration_person`
CHANGE `event_date_id` `event_date_id` int NOT NULL ,
CHANGE `registration_id` `registration_id` int NOT NULL ,
CHANGE `status` `status` int NOT NULL ,
CHANGE `uuid` `uuid` varchar(36) NOT NULL AFTER `status`,
CHANGE `createdate` `createdate` datetime NOT NULL AFTER `uuid`,
CHANGE `hash` `hash` text NOT NULL AFTER `createdate`;" using params []! SQLSTATE[HY000]: General error: 1832 Cannot change column 'registration_id': used in a foreign key constraint 'rex_event_date_registration_person_ibfk_3'
#0 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/sql/sql.php(449): rex_sql->execute()
#1 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/sql/table.php(899): rex_sql->setQuery()
#2 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/sql/table.php(697): rex_sql_table->alter()
#3 /home/ehlb/htdocs/example.org/releases/71/src/addons/yform/plugins/manager/lib/yform/manager/table/api.php(626): rex_sql_table->ensure()
#4 /home/ehlb/htdocs/example.org/releases/71/src/addons/yform/plugins/manager/lib/yform/manager.php(1120): rex_yform_manager_table_api::generateTableAndFields()
#5 /home/ehlb/htdocs/example.org/releases/71/src/addons/yform/plugins/manager/pages/table_field.php(20): rex_yform_manager->getFieldPage()
#6 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/packages/package.php(233): require('...')
#7 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/be/controller.php(503): rex_package->includeFile()
#8 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/util/timer.php(56): rex_be_controller::{closure}()
#9 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/be/controller.php(504): rex_timer::measure()
#10 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/be/controller.php(453): rex_be_controller::includePath()
#11 /home/ehlb/htdocs/example.org/releases/71/src/addons/yform/pages/index.php(3): rex_be_controller::includeCurrentPageSubPath()
#12 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/packages/package.php(233): require('...')
#13 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/be/controller.php(503): rex_package->includeFile()
#14 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/util/timer.php(56): rex_be_controller::{closure}()
#15 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/be/controller.php(504): rex_timer::measure()
#16 /home/ehlb/htdocs/example.org/releases/71/src/core/lib/be/controller.php(436): rex_be_controller::includePath()
#17 /home/ehlb/htdocs/example.org/releases/71/src/core/backend.php(241): rex_be_controller::includeCurrentPage()
#18 /home/ehlb/htdocs/example.org/releases/71/src/core/boot.php(155): require('...')
#19 /home/ehlb/htdocs/example.org/releases/71/public/redaxo/index.php(12): require('...')
#20 {main}
gharlan commented 1 year ago

Wobei ich vermute, dass der Fehler durch https://github.com/yakamara/redaxo_yform/pull/1410 behoben ist (wenn du dann int(10) unsigned beim Feld ausgewählt hast).

alxndr-w commented 1 year ago

Das ist möglich. Leider bin ich noch nicht fit genug mit Git, um mir nur #1410 zu ziehen, das muss ich mal in Ruhe ausprobieren.

tbaddade commented 1 year ago

Leider bin ich noch nicht fit genug mit Git, um mir nur https://github.com/yakamara/redaxo_yform/pull/1410 zu ziehen, das muss ich mal in Ruhe ausprobieren.

Am besten GitHub CLI installieren, dann kann man recht einfach einen PR auschecken.

https://github.com/cli/cli#installation https://cli.github.com/manual/gh_pr_checkout

Oder du nutzt die GH Version. Der PR wurde ja gemerged.

alxndr-w commented 1 year ago

Oder du nutzt die GH Version. Der PR wurde ja gemerged.

Und ist auch das einzige Commit seither. Das ist mir dann hinterher auch aufgefallen.

Erster Test dazu ist: Ich würde mir wünschen, dass man dann auch sieht, welches Feld welchen Datentyp in der Feldübersicht hat, um Probleme schneller zu erkennen oder wo ich schon eine Konfiguration vorgenommen habe:

image

Die Umstellung hat geklappt, aber ich muss wirklich aufpassen, welchen Relationstyp ich auswähle. Fast hätte ich 1:n (also kommasepariert), aber int(10) unsigned kombiniert. Das ist ja von einander abhängig und vlt. kann man per JS im Auswahlfeld die auf disabled stellen, die sich nicht für den gewählten Relationstyp eignen.