Intereting Posts
2 Ячейки ввода автозаполнения / предложения с использованием jQuery или Ajax со вторым ящиком на основе первых выборок с несколькими элементами Как проверить подлинность GKLocalPlayer на моем «стороннем сервере» с помощью PHP? Как разрешить cURL Error (7): не удалось подключиться к хосту? Ошибка Google map api v3 Получение количества строк после выполнения PDO PHP день недели числовой день недели текст не английский Как заполнить пустое значение, если в этот день нет записи с использованием группы MySQL CodeIgniter Неопределенное свойство при загрузке модели PHP MYSQL Выберите почтовый индекс OR customerid ИЛИ anyelse Как удалить десятичную цену от Magento-1? PHP Если заявление с несколькими условиями Проблема Сохранение значений широты и долготы в базе данных MySQL Замена переменных в строке MySQL – Как уменьшить значение int каждые 24 часа? Неустранимая ошибка: вызов неопределенной функции openssl_random_pseudo_bytes ()

Как написать миграцию для вставки записей с помощью phinx?

Я использую phinx для обработки миграции в новом проекте, теперь мне нужно создать новую таблицу и вставить в нее несколько строк, у меня есть:

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

Это добавит новую таблицу, но я не смог найти в документации, как вставлять строки, но это кажется возможным:

Класс AbstractMigration All Phinx распространяется из класса AbstractMigration. Этот класс обеспечивает необходимую поддержку для создания миграции базы данных. Миграции баз данных могут преобразовывать вашу базу данных различными способами, такими как создание новых таблиц, вставка строк , добавление индексов и изменение столбцов.

Возможно? Как мне это сделать?

Solutions Collecting From Web of "Как написать миграцию для вставки записей с помощью phinx?"

Как указал игресситер, существует метод для этого, имя метода вставляется

 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); } } 

Изменить на 2 декабря 2015 г.

Подпись этого метода изменится в будущих стабильных версиях на что-то вроде

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

Больше информации здесь

Ты можешь это сделать. Прочтите документацию для получения дополнительной информации.

http://docs.phinx.org/en/latest/migrations.html#executing-queries

 use Phinx\Migration\AbstractMigration; class MyNewMigration extends AbstractMigration { /** * Migrate Up. */ public function up() { // execute() $count = $this->execute('insert into users(id, name) values (5, "john")'); } /** * Migrate Down. */ public function down() { } } 

Этот вопрос имеет хороший ответ с помощью плагина CakePHP 3 Migrations :

 public function up() { // Save records to the newly created schema $UsersTable = TableRegistry::get('Users'); $user = $UsersTable->newEntity(); $user->name = 'Joe Bloggs'; $user->email = 'joe@example.com'; $UsersTable->save($user); }