Задать вопрос

Как правильно работать с базой данных yii2?

Здравствуйте!
Недавно начал свое знакомство с YII2 хотелось бы задать вопрос опытным разработчиком по работе с БД. Хочу сделать свое тестовое приложение, установил advanced шаблон, применил стандартную миграцию. Залил все в гит. Создал пользователя через веб-интерфейс yii.
Разработку я веду на двух двух разных компьютерах, соответственно на одном залил изменения на гит-сервер, на втором скачал. Применил миграции - могу продолжать работу. Насколько я понял миграции описывают структуру БД, но не работают с данными (не до конца еще разобрался). А как быть с данными? Вот создал я пользователя на одном компьютере по сути вручную, на втором тоже создал вручную? Т.е. на одном компьютере в mysql информация в БД о пользователе есть, а на втором нет. Возможно есть какое-то удобное средства чтобы данные в БД тоже синхронизировались? Или нужно просто сливать SQL-дамп, а потом руками его применять?
Как вообще ведется работа с базой данных когда работает команда разработчиков? У каждого в базе свои данные? А когда уже заливают на тестовый сервер заполняют БД необходимой информацией?
  • Вопрос задан
  • 560 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
ppokrovsky
@ppokrovsky
Было бы лучше описать, какую конкретно задачу пытаетесь решить.

Если задача при создании БД создать записи (например дефолтного пользователя), то insert можно использовать в миграциях, например:

public function up()
    {
        $this->createTable('{{%mymodel}}', [
            'id' => $this->primaryKey(),
            'name' => $this->string(128)->notNull(),
        ], 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB');
        $this->insert('{{%mymodel}}', [
            'name' => 'modelName',
        ]);
        $this->insert('{{%mymodel}}', [
            'name' => 'anotherModelName',
        ]);
    }


Если нужно наполнить базу тестовым контентом, можно использовать фикстуры (fixtures).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@engune
Разработчик сайтов и мобильных приложений
Если данные будут использоваться на всех серверах - то можно заполнение также добавить в миграцию.
Если это временные данные - использовать как дамп из INSERT.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы