如何使用 phinx 编写迁移来插入记录?

2024-01-16

我在用着phinx http://docs.phinx.org/为了处理新项目的迁移,现在我需要创建一个新表并向其中插入一些行,我有:

$tableStatus = $this->table('status');
$tableStatus->addColumn('code', 'string');
$tableStatus->addColumn('description', 'string');
$tableStatus->save();

这会添加新表,但我在文档中找不到如何插入行,但似乎有可能:

AbstractMigration 类 所有 Phinx 迁移都从 抽象迁移类。此类提供必要的支持 创建您的数据库迁移。数据库迁移可以改变 您的数据库有多种方式,例如创建新表,插入 行,添加索引和修改列。

有可能的?我该怎么做?


正如 igrossiter 指出的,有一个方法可以实现这一点,该方法的名称是insert

use Phinx\Migration\AbstractMigration;

class NewStatus extends AbstractMigration
{
    protected $statusId = 1234; //It'd be nice to use an entity constant instead of magic numbers, but that's up to you.
    protected $statusName = 'In Progress';

    /**
    * Migrate Up.
    */
    public function up()
    {
        $columns = ['id', 'name'];
        $data = [[$this->statusId, $this->statusName]];
        $table = $this->table('status');
        $table->insert($columns, $data);
        $table->saveData();   
    }

    /**
    * Migrate Down.
    */
    public function down()
    {
        $this->execute('Delete from status where id = ' . $this->statusId);
    }
}

编辑截至2015年12月2日

该方法的签名将在未来的稳定版本中更改为类似

$data = [
    ['id' => 1, 'name' => 'foo'],
    ['id' => 2, 'name' => 'bar']
];
$table = $this->table('status');
$table->insert($data);

More 信息在这里 https://github.com/robmorgan/phinx/pull/639#event-480065126

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 phinx 编写迁移来插入记录? 的相关文章

  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 如何使用 Facebook SDK API 为页面/网址“点赞”?

    我正在使用这段代码 facebook gt api me likes post array url gt http www google com 我收到以下错误 Fatal error Uncaught OAuthException 200
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 在 Symfony 序列化中更改序列化属性名称

    我正在使用 Symfony 序列化器 效果很好 use Symfony Component Serializer Annotation Groups Groups default notification public function g
  • 使用先前的反向引用作为命名捕获组的名称

    有没有办法使用对先前捕获组的反向引用作为捕获组的名称命名捕获组 这可能不可能 如果不可能 那么这就是一个有效的答案 下列 data description some description preg match data matches p
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • 语法错误,第 288 行出现意外的“endif”(T_ENDIF)[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在离线处理我的 WordPress 网站的此代码错误 解析错误 语法错误 homez 541 photoher marie
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • 从支付网关重定向回时用户会话丢失

    我已将 Cyber source 配置为我的支付网关 我能够导航到 cybersource 并进行付款 并能够成功重定向回该网站 我也可以取消付款并重定向回我的网站 我收到来自支付网关的响应 但是 用户在从支付网关重定向回来时会被注销 我正
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el

随机推荐

  • 没有 Storyboard 的 Segue

    我正在尝试制作一个在每个视图上都有一个主页按钮的应用程序 但我正在寻找一种在单击此按钮时导航到主屏幕的方法 而不需要为 StoryBoard 上的每个屏幕到主页创建一个 物理 链接屏幕 我尝试使用这段代码 IBAction func btn
  • 用于在 Internet Explorer 7 中打开多个页面的 Windows 控制台命令

    如何使用单个 DOS 命令在 Internet Explorer 7 中打开多个页面 批处理文件是执行此操作的唯一方法吗 Thanks 批处理文件将作为一种快速但肮脏的解决方案 echo off setlocal openurl set u
  • Jenkins Pipeline 有“多个候选版本”并且正在选择旧版本

    我配置了一个 Jenkins 多分支管道 它应该从远程 GIT 存储库获取源代码以进行构建 詹金斯似乎 随机 选择一个旧的提交来构建 并在构建日志文件中显示消息 多个候选修订 我的管道看起来像 checkout class GitSCM b
  • XML:如何将一个文件读入另一个文件

    我有一个文件 A xml 包含如下内容
  • 嵌入或引用关系

    我使用 mongodb 和 mongoid gem 我想得到一些建议 我有一个应用程序 其中用户has many市场与市场has many产品 我需要在属于用户的所有 或任何 市场中搜索特定价格范围内的产品 哪种关系更适合这种情况 嵌入关系
  • ActiveRecord :includes - 如何使用带有加载关联的地图?

    我有一个小型 Rails 应用程序 我正在尝试获取一些订单统计信息 所以我有一个管理模型和一个订单模型 具有一对多关联 class Admin lt ActiveRecord Base attr accessible name has ma
  • 多线程将对象引用传递给静态帮助器方法

    我只是 Java 的初学者 偶然发现了多线程应用程序 我知道这个问题与这里的一些帖子类似 但我找不到更好的答案来回答我的问题 基本上 我想将对象传递给静态方法 该方法将仅根据对象的值 属性返回输出 对于每次调用 我都会创建该对象的一个 新实
  • 视图控制器可以访问传入 Segue 的标识符吗?

    视图控制器可以访问用于转换到它的 Segue 的标识符吗 例如 我使用带有标识符 mySegue 的 Segue 从视图控制器 A 转换到视图控制器 B 无论如何 视图控制器 B 是否可以获取 segue 的标识符 我不相信有这样的财产 这
  • JAX-RS 中的 @Produces 注释

    我的服务方法产生其中之一MediaTypes它可能会产生pdf or excel文件或其他 Produces application pdf application vnd ms excel 我的问题 我的服务返回响应类型applicati
  • 在 Swift 中使用实时滤镜录制视频

    我是 swift 的新手 试图构建一个相机应用程序 它可以应用实时滤镜 并使用应用的滤镜进行保存 到目前为止 我可以使用应用的滤镜实时预览 但当我保存视频时 它全黑了 import UIKit import AVFoundation imp
  • 发布模式出错,但调试模式下不出错

    我的代码在调试模式下运行良好 但在发布模式下失败 这是我失败的代码片段 LOADER gt AllocBundle m InitialContent while m InitialContent isReady this gt Loadin
  • 带 Plotly 的树形图:空白屏幕?

    我正在使用 R 编程语言 我正在尝试遵循此处提供的答案 R 中使用plotly 绘制树形图 https stackoverflow com questions 72179306 treemap plot with plotly in r 我
  • “索引签名参数类型不能是联合类型。” – 我应该用什么来代替?

    当我尝试编译此 Typescript 代码时 interface Foo foo hello world string 我收到此错误消息 索引签名参数类型不能是联合类型 考虑改用映射对象类型 什么是映射对象类型 如何使用它 映射的对象类型对
  • 检查变量是否是字符串的简单方法?

    这个问题是一个衍生问题 是 Array 的实例 但 不是 String 的实例 https stackoverflow com questions 12254658 is an instance of array but isnt of s
  • 使用 Microsoft Graph 客户端创建日历事件

    我正在尝试弄清楚如何使用 Microsoft Graph JavaScript 客户端创建日历事件 我已经设法找回必要的accessToken并且可以与 API 交互 即检索事件 日历 前 10 封电子邮件 但我不确定如何使用 API 来创
  • Laravel 4:如何更新 Eloquent 模型中的多个字段?

    如何更新 Eloquent 模型中的多个字段 假设我是这样得到的 user User where username rok 然后我就有了所有这些模型参数 new user data array email gt email protecte
  • ZF2 - Zend Framework 2,了解路由

    我正在尝试了解 ZF2 中的模块路由 目前我只能为单个操作创建一个控制器 并且正在努力找出这个路由 我查看了其他模块和插件 我有点明白了 只需要一点点推动就可以 得到它 在此示例中 我尝试路由到两个操作 indexAction 和 cmst
  • 粘贴前检查剪贴板的内容

    在Excel VBA中粘贴之前是否可以检查剪贴板的内容 我今天有这个 Sheets Add After Sheets Sheets Count Create new sheet ActiveSheet Paste Paste from Cl
  • Android 按钮位置编程

    我的应用程序中有一个按钮 我想以编程方式更改其位置 我在 XML 中创建了一个按钮 如下所示
  • 如何使用 phinx 编写迁移来插入记录?

    我在用着phinx http docs phinx org 为了处理新项目的迁移 现在我需要创建一个新表并向其中插入一些行 我有 tableStatus this gt table status tableStatus gt addColu