MyBB.de Forum
Bei Aktivierung Spalte in Datenbank umbenennen. - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html)
+--- Thema: Bei Aktivierung Spalte in Datenbank umbenennen. (/thread-37494.html)



Bei Aktivierung Spalte in Datenbank umbenennen. - Gerti - 23.10.2020

Hallo,

bei der Aktivierung wird in der Tabelle mybb_users geprüft ob die benötigte Datenbankspalte bereits besteht, wenn nicht wird sie angelegt:
PHP-Code:
if (!$db->field_exists("spaltenname_bisher""users")) {
      $db->add_column('users''spaltenname_bisher''INT(11) NOT NULL DEFAULT "0"');
  

beim Deinstallieren (beim Installieren werden keine Spalten angelegt, dies erfolgt erst beim Aktivieren) wird in der Tabelle mybb_users die Datenbankspalte wieder entfernt:
PHP-Code:
if ($db->field_exists("spaltenname_bisher""users")) {
      $db->drop_column('users''spaltenname_bisher');
  

Mein Frage ist, wie lautet der Befehl um eine Spalte umzubennen?
PHP-Code:
if ($db->field_exists("spaltenname2""users")) {
      $db->?????? spaltenname_2 zu spaltenname_neu');
  } 

Begründung:
es sollen die bereits vorhandenen Daten nicht verloren gehen, weil damals ein unpassender Spaltenname vergeben wurde was jetzt aber korrgiert werden soll.

Anmerkung: (nicht das ihr meint ich bemühe mich nicht erst selbst um Lösungen)
In PHP-MyAdmin kann eine Spalte erfolgreich mit dem SQL-Befehl:
ALTER TABLE mybb_users CHANGE `spaltenname_bisher` spaltenname_neu VARCHAR(255);
umbennen. Aber wie muss der Befehl im PlugIn lauten?

Meine Versuche mit "sp_rename", "rename_column" schlugen alle fehl (weiße Seite erfolgt und die Zeile wird als Fehlermeldung im PHP-Log eingetragen.


RE: Bei Aktivierung Spalte in Datenbank umbenennen. - SvePu - 23.10.2020

Vielleicht so:
PHP-Code:
$db->rename_column('users''spaltenname_bisher''spaltenname_neu''VARCHAR(255)'); 

Siehe auch => https://docs.mybb.com/1.8/development/plugins/database-methods/#db-rename_column


RE: Bei Aktivierung Spalte in Datenbank umbenennen. - Gerti - 23.10.2020

Da lag ich mit meinen Versuchen gar nicht so falsch, nur beim Test etwas zu viel in der Zeile (wie du angegeben hast) rein geschrieben.

Dank deiner Hilfe funktioniert es jetzt.

Herzlichen Dank