Profesyonel kurulum komut ALTER TABLE SQL kullanmadan | Netgez.com
SORU
30 Kasım 2010, Salı


Profesyonel kurulum komut ALTER TABLE SQL kullanmadan

Jonathon Day diyor

< . p ^"güncellemeler şeklinde olmamalıdır SQL komutları". Rastlamak görmedim DDL ya. VİD o olamaz statments Profesyonel olmak. config üzerinden yürütülen yapılar.

(Soru How can I migrate configuration changes from development to production environment?)

Ekle//SQL güvenmeden bu şekilde bir tablo, ama/sütun ya da dizin değiştirmek kaldırmak için nasıl bilmek istiyorum? Hatta mümkün mü?

Ayrıca, ne diğer eylemleri yalnızca SQL yapılabilir?

CEVAP
30 Kasım 2010, Salı


Kur komut dosyası içinde bu tür yöntemleri kullanabilirsiniz:

  • Varien_Db_Ddl_Table Sınıf alanları, anahtarlar, $this->getConnection()->createTable($tableObject)ile birlikte iliÅŸkiler yapılandırabileceÄŸiniz yeni bir tablo oluÅŸturmak için kullanın Örnek:

    /* @var $this Mage_Core_Model_Resource_Setup */
    $table = new Varien_Db_Ddl_Table();
    $table->setName($this->getTable('module/table'));
    $table->addColumn('id', Varien_Db_Ddl_Table::TYPE_INT, 10, 
                      array('unsigned' => true, 'primary' => true));
    
    $table->addColumn('name', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255);
    $table->addIndex('name', 'name');
    $table->setOption('type', 'InnoDB');
    $table->setOption('charset', 'utf8');
    
    $this->getConnection()->createTable($table);
    
  • BaÄŸlantı kur ($this->getConnection()) kullanma yöntemleri:

    • 5* *yöntemi tablo çıkmadan yeni bir sütun ekler. Bu parametreler vardır:
      • $tableName - deÄŸiÅŸtirilmesi gereken tablo adı
      • $columnName- eklenmesi gereken sütun adı
      • $definition - sütun tanımı (INT(10), DECIMAL(12,4), vs.)
    • 11* *yöntemi yeni bir kısıtlama yabancı anahtar oluÅŸturur. Bu parametreler vardır
      • $fkName - yabancı anahtar adı benzersiz olmalıdır FK_ belirtmek musun diye başına veritabanı eklenecektir otomatik olarak önek
      • $tableName - Yabancı bir anahtar eklemek için tablo adı
      • $columnName - eÄŸer karmaşık bir yabancı anahtar, virgül birden fazla sütun belirtmek için kullanın bir tablo yetkisine sahip olmalıdır sütun adı
      • $refTableName - ele alınacaktır ÅŸehirlerinde yabancı tablo adı
      • $refColumnName - sütun ad(lar) ı yabancı tablo
      • $onDelete sıra yabancı tabloda çıkarma eylemi. BoÅŸ dize (hiçbir ÅŸey yapma), cascade, set nullolabilir. Bu alan isteÄŸe baÄŸlıdır, ve eÄŸer belirtilmiÅŸse, cascade deÄŸer kullanılacaktır.
      • $onUpdate satır yabancı tablosunda güncelleme anahtar eylem. BoÅŸ dize (hiçbir ÅŸey yapma), cascade, set nullolabilir. Bu alan isteÄŸe baÄŸlıdır, ve eÄŸer belirtilmiÅŸse, cascade deÄŸer kullanılacaktır.
      • $purge yabancı anahtar ekledikten sonra satır (baÅŸvurulan bu recodrs örneÄŸin kaldırmak) temizlik saÄŸlayan bayrak
    • 27* *yöntemi bir tabloya dizin eklemek için kullanılır. Bu parametreler vardır:
      • $tableName - dizin eklenecek tablonun adı
      • $indexName - dizin adı
      • $fields sütun ad(lar) ı Endeksi kullanılmıştır
      • $indexType - dizin türü. DeÄŸerler mümkün: **, , *, *35unique*34 32*. Bu parametre isteÄŸe baÄŸlıdır, varsayılan deÄŸer index
    • 37* *yöntem mevcut tablodan sütun kaldırmak için kullanılır. Bu parametreler vardır:
      • $tableName - deÄŸiÅŸtirilmesi gereken tablo adı
      • $columnName- kaldırılması gereken sütunun adı
    • 40* *yöntem yabancı anahtarları kaldırmak için kullanılır. Bu parametreler vardır:
      • $tableName - yabancı bir anahtar kaldırmak için tablo adı
      • $fkName - yabancı anahtar adı
    • 43* *yöntem tablonun dizinler kaldırmak için kullanılır. Bu parametreler vardır:
      • $tableName - dizin çıkarılması gereken tablo adı
      • $keyName - dizin adı
    • 46* *yöntemi tabloda varolan bir sütun deÄŸiÅŸtirmek için kullanılır. Bu parametreler vardır:
      • $tableName - deÄŸiÅŸtirilmesi gereken tablo adı
      • $columnName- adlandırılması gereken sütunun adı
      • $definition - sütunun yeni bir tanım (INT(10), DECIMAL(12,4), vs.)
    • changeColumn yöntem ve tabloda varolan bir sütun deÄŸiÅŸtirmek yeniden adlandırmak için kullanılır. Bu parametreler vardır:
      • $tableName - deÄŸiÅŸtirilmesi gereken tablo adı
      • $oldColumnName- yeniden ve deÄŸiÅŸtirilmesi gereken sütun, eski adı
      • $newColumnName- sütunun yeni bir isim
      • $definition - sütunun yeni bir tanım (INT(10), DECIMAL(12,4), vs.)
    • 59* *yöntem, örneÄŸin, Bunu için hali hazırda tablo motoru deÄŸiÅŸtirmek için kullanılır. Bu parametreler vardır:
      • $tableName - tablo adı
      • $engine - yeni motor adı (, *, **MyISAM62 64*, vb)

Ayrıca tableColumnExists yöntem sütunun varlığını kontrol etmek için kullanabilirsiniz.

Sizin için geçerli olan yöntem tam liste, doğrudan SQL sorguları kurtulmak yazılı değildir. Varien_Db_Adapter_Pdo_Mysql Zend_Db_Adapter_Abstract sınıflara daha fazla bulabilirsiniz.

Sınıf tanımı wich içine bakmak için tereddüt etmeyin kullanacağınız, kendiniz için ilginç bir çok şey bulabilirsiniz :)

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • KRQE

    KRQE

    6 AÄžUSTOS 2007
  • tunez4you

    tunez4you

    20 EKÄ°M 2008