Mezők karakterhosszának utólagos módosítása

DruTa képe

Üdv!

Van egy szöveges mezőm, aminél beállítottam eredetileg 50-et maximális karakterhossznak, de utólag módosítanám. Druplaból nem lehet, ezért az adatbázisban megkerestem a field_revision_field_mezoneve és field_data_field_mezoneve adatot és ott a field_mezoneve_value értéket, ami varchar(50) volt átírtam 30-ra, de a Drupalban semmi sem változott, továbbra is 50-et ír ki.

Tudom, hogy levágja a hosszabb karakterszámú mezőket, de ennek ellenére akarom, mivel nincs semmi sem veszélyben, nincs olyan hosszú, viszont nem akarom, hogy később be tudjanak írni hosszabbat. A Drupalban pedig csak a mező szélességét lehet állítani.

Nyilván lehetne a megjelenítésnél is variálni, de miért legyen hosszabb, ha nem kell.

De a kérdés: valamit még kéne módosítanom az adatbázisban?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Nagy Gusztáv képe

Szerintem életveszélyes így turkálni az adatbázisban.

1
0

Nagy Gusztáv

pp képe

A mező a Drupalban nem pusztán adatbázis mező, sőt. Van úgy, hogy egy mező az nem is egy adatbázis mező, ilyen a szöveges mező is, hisz ott nem csak szöveg (*_value) van, hanem beviteli forma (*_format) is.

Ráadásul Te nem, hogy adatbázis mezőket nem tudsz manipulálni a Drupal felületén közvetlenül, hanem Drupal field-eket se. Te csak instance-okat manipulálsz. (ld field_info_instance)

Ajánlom végigdebuggolni a filed.crud.inc-t, hogy képbe kerül, hol kell még belenyúlni az adatbázisba.

Javaslom még a field_config és a field_config_instance táblákat is updateljed, és töröld a gyorstárakat.

Csatlakoznék Gusztávhoz. :)

pp

3
0
DruTa képe

Kösz, igazatok van, hogy veszélyes, de izgalmas is, nem?! :-)

Nem akarok gyakran ilyet csinálni, de gondolom aki profi (jelenleg nem én), az szokott közvetlenül az adatbázisban turkálni.

Egyébként szerintem jó lenne, ha a Drupalból is lehetne, mondjuk jó nagy figyelmeztető üzenettel ellátva, de lehetőséget adva arra, hogy utólag változtassunk a hosszon. Ráadásul mi van, ha valaki növelni akarja?! Annak semmilyen veszélye nincs a már bevitt adatokra.

Plusz lehetne úgy, hogy mielőtt engedi a módosítást, készítene egy adatbázismentést, mint a Migrate modul.

Szóval szerintem ez lenne jó. Ha tudnék programozni, meg is csinálnám a köznek. :-)

0
0
szantog képe

Felteszed a views_bulk_operations modult, csinálsz egy mezei page nézetet, ahová felveszed a vbo checkboxát, és bejelölöd nála az actiont: Modify entity values.

Csinálsz egy másik fieldet, és az új pageden áthajtod az actiont. Lehet kell az entity modul a token használat miatt. Ha nem gáz, hogy módosult a field_name, akár kész is vagy. Ha gáz, akkor törlöd az eredeti fieldet, felveszed a jó adatokkal, és a vbos mutatványt megcsinálod visszafelé.

4
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

DruTa képe

Ez lenne az egyszerűbb út? :-)

0
0
szantog képe

Haat ja, ez már csak ilyen, akár 5 percig is eltarthat a kattintgatás + batch process tartalommennyiségtől függően, és még az adatbázis is konzisztens marad. Brr.. Kiráz a hideg..

4
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.