我的代码怎么了?迁移成功,但是表不存在
public function up()
{
Schema::create('student', function (Blueprint $table) {
$table->varchar('student_id', 6)->primary_key()->nullable(false);
$table->varchar('student_name', 50)->nullable(false);
$table->enum('student_class', ['RPL-1','RPL-2','RPL-3'])->nullable(true);
$table->enum('student_gender', ['MALE','FEMALE'])->nullable(true);
$table->text('student_address')->nullable(true);
$table->tinyinteger('student_status', ['1'])->default('1');
$table->timestamps();
});
}
答案 0 :(得分:0)
由于尝试使用Laravel中不可用的功能或滥用功能,因此示例中的迁移将无法运行。我整理了一个新的迁移并进行了测试,它运行良好。
Schema::create('student', function (Blueprint $table) {
$table->string('student_id', 6)->primary_key()->nullable(false);
$table->string('student_name', 50)->nullable(false);
$table->enum('student_class', ['RPL-1', 'RPL-2', 'RPL-3'])->nullable(true);
$table->enum('student_gender', ['MALE', 'FEMALE'])->nullable(true);
$table->text('student_address')->nullable(true);
$table->tinyinteger('student_status')->default('1');
$table->timestamps();
});
我假设student_id
在您的应用程序中必须是某种独特的代码,因此我将其更改为使用string
函数。这将创建一个varchar type字段,第二个参数是字符串的长度。
我还更改了tinyinteger
的{{1}}函数参数,似乎您正在尝试指定所有可能的值,类似于您对student_status
的使用。 enum
类型无法获取可能值的列表,因此您可能需要将其更改为布尔值(如果状态为true或false),枚举或相关表的外键(如果相关)。>
如果您在应用程序中使用Eloquent ORM,则可能不需要在所有列名前面加上tinyinteger
。如果使用得当,您应该能够简单地使用要存储的变量的名称,例如student
将变成student_name
。