在Django中迁移命令错误

时间:2017-09-06 16:36:15

标签: django migrate

我收到迁移命令错误 -

// It seems you want this as your default if there is no $_POST['cSaleDate']?
$saleDate = '0000-00-00';

// Now check if you should overwrite this default
if (isset($_POST['cSaleDate'])) {
    include_once('client.php');
    if ( ! empty($_POST['cSaleDate'])) {
        $saleDate = date('Y-m-d', strtotime($_POST['cSaleDate']));
    }
}

// Now do your escape and db insert
$saleDate = mysqli_real_escape_string($db, $saleDate);

$fields = 'fips_code, size_code, client_name, client_state, sale_date';
$values = "'$fips_code', '$size_code', '$client_name', '$client_state', '$saleDate'";

$sql = "INSERT INTO clients ($fields) VALUES ($values)";

模型是

django.db.utils.OperationalError: (1170, "BLOB/TEXT column 'module_name' used in key specification without a key length")

虽然有一个关键的长度。

class Coupling(models.Model):
    coupling_name = models.CharField(max_length=150, blank=False, default=True, unique=True)
    module_name = models.TextField(max_length=255)

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

第一个错误可能是因为您尝试为unique=True设置TextField。对于MySQL as noted in the docs,这是不可能的。

第二个错误是因为您正在尝试创建已存在的索引。这可能是因为您已经运行了迁移,但它在某种程度上失败了。 MySQL不会在事务中运行架构更改,因此如果更改失败,则不会回滚。您可以尝试手动删除索引,或者,如果这是一个新项目,可能更容易删除数据库并重新开始。