### プロジェクト作成
$ 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でやらないと駄目そうだな。。