gpt4 book ai didi

laravel - 在 Laravel 中安全地重命名 Controller 、它的模型和它的迁移

转载 作者:行者123 更新时间:2023-12-04 15:42:25 27 4
gpt4 key购买 nike

我想重命名 Laravel 中的 Controller 、它的模型和它的迁移。

我可以手动完成,但问题是我会花费大量时间(尤其是重命名迁移文件的名称、迁移文件中的内容以及 Laravel 跟踪迁移的表“迁移” )。

我现在可以做到,因为我的迁移很少。到目前为止,该应用程序很小(我刚刚创建它是为了开始使用 Laravel );我只有一个仪表板、一个用户 Controller 和一个文章 Controller (允许用户创建和编辑他们的文章,并允许访客只看到文章)。但是,如果再次发生这种情况并且我有 30 次迁移,该怎么办?我可能会不小心弄乱一切并导致错误。

我可以自动重命名 Controller 吗?如果是,我该怎么做?如果没有,手动重命名 Controller 时有什么需要特别注意的吗?所以重命名后不会出现问题。

备注 :
我是 Laravel 和 StackOverflow 的新手,所以如果我的问题看起来很傻,我很抱歉;不要对我无礼。

最佳答案

简短的回答:不要重命名您的迁移。相反,添加一个 table rename移民。

长答案:

迁移 是对数据库所做更改的时间顺序列表。他们的名字是 migrations因为它们往往会导致大量数据移动:数据 迁移 从一种结构到另一种结构。重命名表就是这样的迁移之一。

迁移的好处之一是能够回滚数据库更改。假设您的源代码受版本控制(git、svn 等)并且发布后发布出现错误,您可以简单地运行“向下迁移”并在进行修复时恢复应用程序的先前(工作)版本。

为了使上述方案起作用,保持迁移文件完整很重要。理想情况下,您永远不要更改迁移:相反,您应该 添加新的迁移 这包含了您想要更改的任何内容。

最后举个例子,如果你最初命名你的模型 Foo ,您将有一个迁移归结为

create_foo migration:
up: create table foo
down: delete table foo

一段时间后,您发现您不小心将其命名为 Foo而不是 Bar并重命名。你会添加一些归结为:
rename_foo_to_bar migration:
up: rename table foo to bar
down: rename table bar to foo

然而后来事实证明 Bar显然应该是 Baz :
rename_bar_to_baz migration:
up: rename table bar to baz
down: rename table baz to bar

...但事实证明该版本有一个错误,所以你恢复你的代码并运行向下迁移

修复错误后,您可能需要应用错误修复迁移:
fix_some_bug migration
up: rename column or something
down: restore the bug

发布bugfix时,数据库还在 rename_foo_to_bar ,所以在部署过程中, rename_bar_to_bazfix_some_bug被应用。

通过使用该系统,您可以使您的数据库与您正在运行的代码的当前版本保持同步。

但是,不要轻易使用向下迁移,通常存在丢失数据的风险。

关于laravel - 在 Laravel 中安全地重命名 Controller 、它的模型和它的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57331788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com