问题标签 [laravel-migrations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
937 浏览

git - 我应该在 Laravel 5 中 gitignore 播种文件吗?

我已经用假数据设置了我的迁移文件和播种器文件,它们运行良好。我即将提交我的工作,但我真的不知道如何处理我的播种机文件。我绝对不想在生产中运行种子文件,所以我想我会忽略它们。我不想意外地将虚假数据迁移到生产环境中!

然而,我认为播种机可以在生产中使用真实数据。假设我添加了一个必须对其他表列执行一些计算的新列(为了示例,让我们忽略可以从其他字段计算的任何字段不应该存在于数据库中)并存储一个值。或新的设置/标志。我想我可以创建一个播种机,用现有的生产数据填充该字段。所以现在我不能忽略播种机目录。

我应该决定为每个案例独立忽略每个文件吗?我可以在某处声明播种机只能在dev环境中运行吗?这里的约定是什么?

0 投票
2 回答
3618 浏览

postgresql - Update enum column in Laravel migration using PostgreSQL

According to this answer, I have to run a raw query if I want to update an enum in MySQL. But with PostgreSQL, I can't use this query, and enum type for PostgreSQL in Laravel seems strange.

Is there any way to update enum in a migration for postgreSQL ?

0 投票
1 回答
227 浏览

laravel-5 - 如果 up() 删除表,应该在 down() 函数中添加什么?

刚开始学习 Laravel,所以放轻松。我制作了几个迁移文件来试用。第一个创建表,第二个添加列,第三个删除表。我很想知道我应该在down()第三次迁移的函数中添加什么,因为你不能“取消删除”一个表。您如何处理回滚删除表的迁移?

0 投票
9 回答
34148 浏览

mysql - Laravel 5.1 迁移和播种无法截断外键约束中引用的表

我正在尝试运行迁移(见下文)并为数据库播种,但是当我运行时

我收到此错误:

我查了一下这个错误应该是什么意思,还发现了其他人遇到同样问题的例子,甚至只是与使用MySQL和他们的解决方案有关,但应用:

在 down() 内似乎不起作用,当我在 MySQL 中运行 describe 时,表看起来正确。

正确命名迁移以确保首先迁移用户表,然后迁移车辆,以便可以应用外键,并且正确设置的表表明迁移已运行,但随后发生错误。我删除并重新创建了数据库并再次尝试,结果相同。我也不明白为什么它试图在数据库的第一次迁移和种子时截断,我不会想到当你尝试运行 php artisan migrate:refresh --seed 时会发生这种情况。

0 投票
5 回答
30539 浏览

sql - 如何将 Laravel 迁移转换为原始 SQL 脚本?

我团队的开发人员真的习惯了 Laravel 迁移的强大功能,他们在本地机器和我们的开发服务器上工作得很好。但是客户的数据库管理员不会接受 Laravel 迁移。他要求为我们应用程序的每个新版本提供原始 SQL 脚本。

是否有任何工具或编程技术来捕获从 Laravel 迁移到上/下 SQL 脚本的输出?

如果我们可以在创建生产构建时将 SQL 脚本生成集成到我们的 CI 系统(TeamCity)中,那将是完美的。

顺便说一句,我们将在这个项目中使用 Laravel 5 和 PostgreSQL。

0 投票
2 回答
859 浏览

mysql - 将 MySQL 视图转换为 Postgres

我继承了将生产 MySQL DB 转换为 Postgres 的需要。这主要是使用简单的 SQL 语句来创建表/函数(使用 Navicat 生成半自动转换)来处理的,但现在我在转换有点复杂的视图时遇到了问题。

研究表明,这可能是由于两个 DB 处理子查询(WHERE 语句)的方式不同,也许这只是语法上的差异。这里的业务逻辑是未知的,因为代码库是从另一个开发人员那里继承的。

运行以下命令(使用 Laravel 迁移/PHP 脚本):

...触发错误

谁能建议如何格式化这个以便 Postgres 运行子查询?

顺便说一句,这里在 Laravel 迁移脚本中使用的 PHP 代码是:

...

更新,固定:

杰出的。来自所有人的非常好的输入。

@patrick 和 @ErwinBrandstetter 的解决方案都有效。我会支持帕特里克在这里,因为我的角色是“按原样”转换系统。未来可能会有重构的空间,但在这个阶段,我觉得弄乱(或改进)别人的管道胶带解决方案是有风险的(即代码库在某些地方似乎过于复杂,没有文档的迹象,我在没有更多关于业务逻辑的背景信息的情况下,我不愿意四处寻找或尝试核心改进)。我怀疑模型的某些部分可能无论如何都需要大修,所以[原文如此]-fix 在这里受到青睐。

我怀疑一些点击抖动可能已经生成了原始查询......试图让原始开发人员从怀疑中受益,并假设存在一些需要快速(即鼠标)周转的业务压力。复杂的 SQL 不是我的强项,但我很高兴我的直觉是正确的,查询一开始就没有必要复杂。也许这个视图是一个计划外的螺栓 - 不是一开始就设计的。明智与否,我可能会尝试使用基于 ORM 的方法来解决问题。

我最后一分钟在这个项目上,运行清理以重新启动(原始开发是“放手”),所以我正在使用一个充满未知功能的大部分未记录的代码库。像伞兵一样奔跑。值得庆幸的是,这个视图问题出现在拼图的最后一块。谢谢 :-)

0 投票
2 回答
2131 浏览

php - Laravel - 更改了迁移文件名/类,迁移:重置仍然寻找旧类

我更改了迁移文件名,更新了类名,运行了“composer dump-autoload”,然后运行了“php artisan migrate:reset”。

当我运行时,我得到一个错误:

[Symfony\Component\Debug\Exception\FatalErrorException] 类 'OldClassName' 未找到

当我在整个项目中搜索这个类名时,我发现的只是错误日志中提到的。如果我进入“autoload_classmap.php”,我的类名和迁移文件名的行是正确的(我复制并粘贴了它们只是为了确保)。

在谷歌搜索时,人们建议运行我已经拥有的其他一些命令:

我还应该如何解决这个问题?

0 投票
1 回答
2171 浏览

php - laravel 5 迁移向我的数据库表添加了一些主键。怎样防止形成呢?

当我按如下方式创建 Laravel5 迁移时,它会添加“linkdesc”列作为主键。当我阅读 laravel5 迁移的文档时,它没有提到$table->text('description');这给出了数据库中的主键。有什么办法可以防止在 laravel5 中自动添加主键?还有其他迁移功能会提供这种不需要的主键吗?

我的迁移如下

0 投票
2 回答
508 浏览

php - Laravel 4.2 和迁移无法正常工作

我根据《Laravel 4 入门》一书创建了一个项目。

因此,我在 app/models/ 中创建了两个文件——Cat.php 和 Breed.php,内容如下:

猫.php

和 Breed.php

之后,我使用命令php artisan migration:make create_cats_and_breeds_table

好的,应该在app/database/migrations中出现文件。这是。

但是,它的内容和书中的不一样……

书中:

我的代码:

发生了什么?

0 投票
2 回答
101 浏览

laravel - 在 Laravel5 中与主队和客队进行比赛的数据透视表

我想在我的应用程序中与 2 个团队进行比赛。目前我用一个简单的 hasMany/belongsToMany 关系实现了这个。

表:团队、比赛、match_team(match_id、team_id)

团队模型

匹配模型

所以当然我在 Pivot 表 match_team 中的每场比赛都有 2 行:

使用 Blade 模板引擎,我可以请求主队,例如:

但我想更具体一些,并希望有一个这样的表格:

但是我真的不知道如何设置这些关系......

对此有任何想法/想法吗?=)