### プロジェクト作成
$ composer create-project –prefer-dist laravel/laravel tenancy-demo
$ cd tenancy-demo
$ composer require hyn/multi-tenant
### mysql driverインストール
$ composer require tenancy/db-driver-mysql
Problem 1
– tenancy/db-driver-mysql[v1.3.0, …, 1.x-dev] require doctrine/dbal ^2.9 -> found doctrine/dbal[v2.9.0, …, 2.13.x-dev] but the package is fixed to 3.1.1 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
– Root composer.json requires tenancy/db-driver-mysql ^1.3 -> satisfiable by tenancy/db-driver-mysql[v1.3.0, 1.x-dev].
doctrine/dbalを2系でインストールする必要がありそう。
$ composer require “doctrine/dbal:2.*”
$ composer require tenancy/db-driver-mysql
今度は上手くいきました。
config/app.php
'providers' => [
// 省略
Hyn\Tenancy\Providers\TenancyProvider::class,
Hyn\Tenancy\Providers\WebserverProvider::class,
],
file update
$ php artisan vendor:publish –tag tenancy
config/database.php
L connectionでmysqlをコピペしてsystemを追加します。
'connections' => [
'system' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'tenancy'),
'username' => env('DB_USERNAME', 'hoge'),
'password' => env('DB_PASSWORD', 'fuga'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
],
.env
TENANCY_HOST=127.0.0.1 TENANCY_PORT=3306 TENANCY_DATABASE=tenancy_demo TENANCY_USERNAME=hoge TENANCY_PASSWORD=fuga
mysql> create database tenancy_demo;
Query OK, 1 row affected (0.01 sec)
$ php artisan migrate –database=system
Migrating: 2017_01_01_000003_tenancy_websites
Migrated: 2017_01_01_000003_tenancy_websites (16.88ms)
Migrating: 2017_01_01_000005_tenancy_hostnames
Migrated: 2017_01_01_000005_tenancy_hostnames (44.02ms)
Migrating: 2018_04_06_000001_tenancy_websites_needs_db_host
Migrated: 2018_04_06_000001_tenancy_websites_needs_db_host (12.21ms)
### Trying your installation
multi tenantのテストを行うには、apacheかlaravel Valetでテストする必要がある
localhost:[any_port] では動かない
tenant.system.extension でないとダメ
なんだとおおおおおおおおおおおおお
どうりでphp artisan serveでvagrant環境で動かないと思った。
うーん、困った。さくらVPSでテストするか。
というか、Laravel Valetってなんだ??
### laravel valetとは?
macOSミニマリスト向けのLaravel開発環境
https://readouble.com/laravel/8.x/ja/valet.html
うーむ、結局apacheでやらないと駄目そうだな。。