Notas Técnicas

dbDelta e MariaDB

Como evitar erro SQL em migrações de tabelas no WordPress.

Causa do erro

O dbDelta() é sensível ao formato do CREATE TABLE. Definir tabela inteira em uma linha pode gerar ALTER TABLE CHANGE COLUMN inválido.

Padrão seguro

CREATE TABLE {$table} (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  product_id BIGINT UNSIGNED NOT NULL,
  amount DECIMAL(12,2) NOT NULL DEFAULT 0.00,
  created_at DATETIME NOT NULL,
  PRIMARY KEY  (id),
  KEY product_id (product_id)
) {$charset_collate};