有没有办法在Laravel 4迁移中生成存储的MYSQL过程?
例如,这是一个简单的过程生成查询,以字符串形式存储(通过Heredoc)
$query = <<<SQL
DELIMITER $$
DROP PROCEDURE IF EXISTS test$$
CREATE PROCEDURE test()
BEGIN
INSERT INTO `test_table`(`name`) VALUES('test');
END$$
DELIMITER ;
SQL;
DB:statement(DB::RAW($query));
在迁移up()
函数中运行此命令时,出现以下错误:
您的代码有两个主要问题
DELIMITER
不是有效的sql语句。这只是一个MySql客户端命令。因此,请不要使用它。 顺便说一句 ,您得到的错误恰恰告诉您。DB::statement
来执行CREATE PROCEDURE
代码,因为它使用的预准备语句源代码Connection
。您可以使用PDO 来代替exec()
DB::connection()->getPdo()->exec()
话虽如此,虚tags
表的样本迁移可能看起来像这样
class CreateTagsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tags', function($table){
$table->increments('id');
$table->string('name')->unique();
});
$sql = <<<SQL
DROP PROCEDURE IF EXISTS sp_insert_tag;
CREATE PROCEDURE sp_insert_tag(IN _name VARCHAR(32))
BEGIN
INSERT INTO `tags`(`name`) VALUES(_name);
END
SQL;
DB::connection()->getPdo()->exec($sql);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$sql = "DROP PROCEDURE IF EXISTS sp_insert_tag";
DB::connection()->getPdo()->exec($sql);
Schema::drop('tags');
}
}
Nodejs。顺序4.41。尝试通过另一个表制作两个多对多关系的模型。例如,使用sequelize-cli运行... 这里有模特 和 留档里有短语 属于多个关联用于连接具有多个目标的源。此外,目标也可以连接到多个源。 这将创建一个名为UserProject的新模型,该模型具有等效的外键Project ectId和userId。 迁移是 和 为什么在我运行迁移时,它不创建模型CameraRelay,
迁移Topic,是指把Topic从“开放平台账号”迁移到“生态云账号”体系下,这样才能够进行接下来的数据流配置操作; 接下来以在开放平台账号下(即目前的旧版流式消息队列页面)创建Topic然后进行迁移为例来讲解(如果已经有Topic,则直接操作迁移即可); 选择生态云机房 所选生态云机房需要和上一节 FDS Bucket所在机房相同。 创建Topic 如图所示,在“产品”下点击"流式消息队列",点
我正在从事一个项目,我正在使用laravel 5.8。这里我想创建一个外键。我试了很多次,但每次都收到一条关于迁移时间的错误消息。有三个表一个是行业,是小学和学生,这些是第二个表。我想在这两个辅助表trade_id上创建一个外键作为键的名称。 这是交易表(主表)。 这是学生表(辅助表)。 这是放置表(辅助表)。 在迁移时出现错误。
创建迁移脚本 生成一个迁移脚本框架 让我们从创建一个新的 Phinx 迁移脚本开始。使用 create 命令: $ php vendor/bin/phinx create MyNewMigration 这将创建一个新的迁移脚本,格式是 YYYYMMDDHHMMSS_my_new_migration.php ,前14个字符是当前的timestamp,精确到秒。 如果你指定了多个脚本路径,将会提示你
Laravel版本:5.7 PHP版本: 7.2.9 数据库驱动程序 说明上次迁移创建表,但未在迁移表中注册 繁殖步骤我有14个迁移。如果我运行的表被创建,但没有注册为运行迁移我已经丢弃了家庭数据库几次 我的迁移状态表 最终,当我想刷新、回滚或迁移以进行开发时,我会收到这样一个错误,告诉我表存在,但不在迁移中 Illumb\Database\QueryException:SQLSTATE[42S0
问题内容: 我已经学习了一个星期左右的时间来使用EF,并且一直困扰于创建/更新数据库的问题。如果数据库不存在,我可以创建一个初始化器来创建数据库: 或者我可以创建一个配置来迁移数据库 每个都可以正常工作,但我还没有想办法做到这两个。我可以通过更改SetInitializer调用在两个初始值设定项之间进行切换,但是如果我想创建数据库(如果该数据库不存在的话),并且还要迁移它(如果这样做的话)呢?我需