Podczas wpisywania nazwy pola rozdzieliłem się i teraz nazwa maszyny nie jest taka, jak chciałem. Wiem, że to tylko irytacja. ale zastanawiam się, czy istnieje jakiś sposób na zmianę nazwy maszyny pola po jego utworzeniu.
Przypuszczam, że prowadzi mnie to do drugiej części mojego pytania. jeśli utworzyłem pole i nie jest ono już używane, jak mogę je usunąć, czy trzeba to zrobić z bazy danych, czy można to zrobić gdzieś w interfejsie użytkownika.
Moja procedura polega na użyciu drush, aby najpierw sklonować pole, a następnie skopiować dane pola z zapytaniami DB do nowej tabeli pól. Po zweryfikowaniu zawartości sklonowanego pola usuwam oryginalne pole.
Robię to w ten sposób, ponieważ uważam, że metoda dronowania klonowania pól zawsze będzie co najmniej tak niezawodna, jak każdy kod do klonowania, który sam stworzę, zapytanie o kopię danych jest dość proste i muszę sprawdzić nowe pole przed usunięciem oryginalnego .
drush field-clone field_my_field field_my_field_clone
field_my_field_clone
, np.INSERT field_my_field_clone SELECT * FROM field_my_field;
field_my_field_clone
.admin/structure/types/manage/my-content-type/fields
źródło
drush field-delete xxx
i możesz również polubić,drush sql-query
jak sugeruje neubreed. @zkent, będziesz musiał ponownie połączyć nowe pole w istniejących widokach, panelach itp.W Drupal 7 możesz użyć modułu Zmiana nazwy pola . W Drupal 6 możesz użyć modułu zmiany nazwy pola CCK .
źródło
Napisałem skrypt aktualizacji, który faktycznie tworzy nowe pole i instancję z nową nazwą komputera, kopiuje wszystkie stare dane pola do nowej i na koniec usuwa starą instancję.
źródło
Po prostu musiałem to zrobić i uznałem, że nie jest to zbyt trudne, ale moja strona jest dość prosta.
Spróbuj tego:
(zamień [NEW MACHNIE NAME] i [OLD MACHINE NAME] z
field_your_field_names
)/admin/reports/fields/views-fields
źródło
// Zmień nazwy tabeli przechowywania pól. Tutaj zmieniamy nazwę starej tabeli na nową.
// Zmień nazwy pól w tabelach field_config i field_instance_config.
źródło
Z powyższą odpowiedzią na drush field-klon możesz zrobić ostatni krok MySQL z Drush również (przykład D7):
źródło
Jeśli nie chcesz się bawić w mysql, możesz wypróbować napisany przeze mnie skrypt drush o nazwie Field value copy.
Najpierw musisz skonfigurować nowe pole, a następnie zadzwonić
Spowoduje to przeniesienie istniejących danych do nowego pola. Po zakończeniu usuń stare pole.
źródło
Funkcja db_change_field () może ci pomóc.
źródło
Wyeksportuj plik SQL bazy danych, użyj wiersza polecenia,
sed
aby zastąpić wszystkie wystąpienia terminu do zmiany, i ponownie zaimportuj bazę danych.źródło