statamic / migrator
Requires
- friendsofphp/php-cs-fixer: ^3.54.0
- league/flysystem-aws-s3-v3: ~1.0 || ~3.0
- mustangostang/spyc: dev-master#dfd9aadc1f5224065d55b42b712c7e99a50a3f4d
Requires (Dev)
- mockery/mockery: ^1.4.4
- orchestra/testbench: ^8.0 || ^9.0
- phpunit/phpunit: ^10.0
- statamic/cms: ^5.0
This package is auto-updated.
Last update: 2024-09-22 18:48:08 UTC
README
🤘 让从 v2 迁移变得更加容易!
📺 在此屏幕录像中查看迁移器的使用情况 点击此处。
使用站点迁移器
站点迁移器是推荐迁移网站的方式。要开始...
-
在新位置安装Statamic的新实例,并需要迁移器
composer require statamic/migrator --dev --with-all-dependencies
-
清除您的新站点,以确保在迁移之前删除所有默认内容
php please site:clear
-
确保您在 v2 项目中运行的是 Statamic 的最新版本。
-
将您的 v2 项目的
site
文件夹以及任何本地资产容器文件夹复制到新项目的根目录中。- 如果您运行在 webroot 之上,请确保将您的
public/themes
文件夹复制到site/themes
中。
- 如果您运行在 webroot 之上,请确保将您的
-
提交到目前为止的所有更改,以便您可以看到迁移器执行的所有更改的差异,并在必要时轻松回滚。
-
运行以下命令以开始迁移
php please migrate:site
注意: 为了透明度,Statamic 向主页发送信号以记录关于迁移了哪些内容的统计信息。这些数据完全匿名,但您可以通过将
DISABLE_MIGRATOR_STATS=true
添加到 .env 文件中退出! -
解决任何错误和警告,然后重新运行
migrate:site
,直到没有剩余的问题。-
如果想要覆盖先前迁移的文件,请使用
--force
标志。 -
虽然我们希望为您自动化大多数常见的繁琐任务,但任何更定制的内容可能需要手动迁移。有关重大更改的更多信息,请查看升级指南。
-
-
当您完成并满意后,请随意删除您新项目根目录中的
site
和资产容器文件夹,然后运行以下命令composer remove statamic/migrator --dev composer update
-
订购披萨!🍕 🤘 😎
使用单个迁移器
如果您需要更细粒度的方法,也可以运行单个迁移器命令。在开始之前,请阅读使用站点迁移器,以确保迁移准备就绪。
字段集到蓝图迁移器
在 v3+ 中,蓝图 是字段集的替代品。值得注意的是,字段集 技术上仍然存在,但它们现在是蓝图的一个较小的、辅助功能。要将字段集迁移到蓝图
php please migrate:fieldset post
在此示例中,post
是字段集句柄。
集合迁移器
在 v3+ 中,集合具有不同的文件夹和配置结构。要将集合迁移
php please migrate:collection blog
在这个例子中,blog
是集合处理程序。
页面迁移器
在 v3+ 中,页面现在存储为一个 集合,并且有一个单独的 结构 来管理您的页面树层次结构。要迁移您的页面
php please migrate:pages
分类迁移器
在 v3+ 中,分类主要是即插即用,除了对配置结构的少量更改。要迁移一个分类
php please migrate:taxonomy tags
在这个例子中,tags
是分类处理程序。
资产容器迁移器
在 v3+ 中,资产和相关的元数据现在存储在一个 Laravel 文件系统 中。要迁移一个本地资产容器,您需要将您的资产文件夹复制到您的新项目根目录中,与您的 site
文件夹一起。如果您正在迁移基于 S3 的容器,可以跳过此步骤。一旦准备好,运行以下命令
php please migrate:asset-container main
在这个例子中,main
是资产容器处理程序。
全局迁移器
在 v3+ 中,全局变量主要是即插即用。要迁移一个全局集合
php please migrate:global-set global
在这个例子中,global
是全局集合处理程序。
表单迁移器
在 v3+ 中,表单字段现在在 蓝图 中定义。要迁移一个表单及其提交
php please migrate:form contact
在这个例子中,contact
是表单处理程序。
用户迁移器
在 v3+ 中,用户主要是即插即用。最显著的变化是现在 email
替换了 username
作为新的文件名和处理程序。要迁移一个用户
php please migrate:user hasselhoff
在这个例子中,hasselhoff
是用户名处理程序。
角色迁移器
在 v3+ 中,角色主要是即插即用。最显著的变化是角色现在由一个 slug 处理程序键入,而不是由 uuid 键入。值得注意的是,用户迁移器在用户端也处理这种关系。要迁移您的用户角色
php please migrate:roles
组迁移器
在 v3+ 中,组主要是即插即用。最显著的变化是组现在由一个 slug 处理程序键入,而不是由 uuid 键入。我们还从每个组中移除了 users
数组,转而在用户本身上存储 groups
关系。值得注意的是,用户迁移器在用户端也处理这种新关系。要迁移您的用户组
php please migrate:groups
设置迁移器
在 v3+ 中,网站设置现在存储在一个传统的 Laravel 配置目录 中。要迁移您的网站设置
php please migrate:settings
由于 v2 和 v3+ 之间的设置存在差异,我们无法保证您的设置可以完全迁移,但我们尽力为您更新最明显的内容。请务必确保所有重要的设置都已按需迁移!
主题迁移器
在 v3+ 中,'主题' 的概念已消失。您的网站只有一个,并且位于 resources
目录中。当运行完整的网站迁移时,我们仅尝试迁移您的活动主题。但是,您可以在运行此迁移器时指定任何主题处理程序
php please migrate:theme redwood
在这个例子中,redwood
是位于 site/themes
文件夹中的主题的处理程序。
值得注意的是,antlers 模板 已经经历了相当多的变化。最明显的变化是 antlers 现在使用 .antlers.html
文件扩展名。您还会注意到可用的 标签、修饰符 以及变量如何 级联 等等方面的变化。
由于 antlers 模板的演变,我们无法保证完全迁移您的主题,但我们尽力为您更新最明显的内容。
提交问题
虽然我们希望为您自动化大部分常见的繁琐工作,但对于更定制化的需求可能需要手动迁移。因此,我们建议您熟悉升级指南。虽然我们无法自动化所有内容,但希望您已经发现这个包在您向v3+版本过渡时很有用。如果您遇到任何您认为需要解决的错误或问题,请创建一个新问题。