Laravel Migration Check Foreign Key if exist tested on laravel 5.0
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('admin', function(Blueprint $table)
{
$schema_builder = Schema::getConnection()
->getDoctrineSchemaManager()
->listTableDetails( $table->getTable() );
if( $schema_builder->hasIndex('admin_ibfk_1') )
$table->dropForeign('admin_ibfk_1');
if( $schema_builder->hasIndex('admin_ibfk_2') )
$table->dropForeign('admin_ibfk_2');
});
}
sample usage base on @guiwoda
$conn = Schema::getConnection();
$dbSchemaManager = $conn->getDoctrineSchemaManager();
$doctrineTable = $dbSchemaManager->listTableDetails('users');
// alter table "users" add constraint users_email_unique unique ("email")
if (! $doctrineTable->hasIndex('users_email_unique'))
{
$table->unique('email');
}