Проверка если нет базы данных то создать без composer, как сделать?
При помощи миграций yii2
Проверка если нет базы данных то создать без composer, как сделать?
Re: Проверка если нет базы данных то создать без composer, как сделать?
Для создания БД используй phpmyadmin, в конфигах прописываешь подключение к БД со всеми наименованиями, паролями, префиксами таблиц.
При помощи миграций работа ведется с самой БД. В плане создания новых таблицы, индексов и т.п.
При помощи миграций работа ведется с самой БД. В плане создания новых таблицы, индексов и т.п.
Re: Проверка если нет базы данных то создать без composer, как сделать?
Как сделать для создания таблиц
Re: Проверка если нет базы данных то создать без composer, как сделать?
не понятно что вам надо
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Проверка если нет базы данных то создать без composer, как сделать?
В компонентах консоли
Миграция
Код: Выделить всё
'components' => [
'db-manager' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;',
'username' => 'root',
'password' => '',
],
],
Код: Выделить всё
class m200312_102754_dbcreate extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
Yii::$app->get('db-manager')
->createCommand("CREATE DATABASE IF NOT EXISTS `demo`;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
GRANT ALL ON `demo`.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;")
->execute();
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
echo "m200312_102754_dbcreate cannot be reverted.\n";
return false;
}
}
Re: Проверка если нет базы данных то создать без composer, как сделать?
Если всё же интересовала миграция таблицы
Или колонки в таблицу
Код: Выделить всё
use yii\db\Migration;
use yii\db\Schema;
use app\common\models\MyTable;
class m200205_133320_add_my_table extends Migration
{
private $tableOptions = "COLLATE='utf8_general_ci' ENGINE=MyISAM";
private $tableName;
public function init()
{
$this->db = MyTable::getDb(); //тут должно быть имя БД
$this->tableName = MyTable::tableName(); //тут должно быть имя таблицы, которое будет создано в БД
parent::init();
}
public function safeUp()
{
$this->createTable($this->tableName, [
'mytable_id' => Schema::TYPE_PK,
'first_id' => Schema::TYPE_INTEGER . '(11) DEFAULT NULL',
'second_id' => Schema::TYPE_INTEGER . '(11) DEFAULT NULL',
], $this->tableOptions);
}
public function safeDown()
{
$this->dropTable($this->tableName);
}
}
Код: Выделить всё
public function safeUp()
{
$this->addColumn($this->tableName, 'new_column', Schema::TYPE_INTEGER . '(11) DEFAULT NULL');
}
public function safeDown()
{
$this->dropColumn($this->tableName, 'new_column');
}