Azure 使うなら SQL Server使うでしょ、ということでSQL Server と Laravelを組み合わせて使うと、 artisan migrate
実行時にエラーが発生。つらい。
[2022-02-07 06:54:34] local.ERROR: SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Could not find stored procedure 'sp_msforeachtable'. (SQL: EXEC sp_msforeachtable 'DROP TABLE ?') {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42000): SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Could not find stored procedure 'sp_msforeachtable'. (SQL: EXEC sp_msforeachtable 'DROP TABLE ?') at /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:703)
[stacktrace]
#0 /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(663): Illuminate\\Database\\Connection->runQueryCallback('EXEC sp_msforea...', Array, Object(Closure))
#1 /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(493): Illuminate\\Database\\Connection->run('EXEC sp_msforea...', Array, Object(Closure))
どうやら、AzureのSQLServerには sp_msforeahtable
が存在しないらしいです。
Stackoverflowさんもそうおっしゃっております。なんてこった。
Deploy database to Azure SQL fails, sp_MSforeachtable not found
https://stackoverflow.com/questions/46651612/deploy-database-to-azure-sql-fails-sp-msforeachtable-not-found
が、そこはStackoverflowさんということで、解法も載っていました。
あわてず、以下記載のSQLを実行してcreate
。
無事解決。