Я начал создавать новый проект на основе Laravel 6.16.0 и создавать мультитенантную среду с Multi-Tenant / Hyn, а для БД я использую MYSQL. Это предназначено для управления всей информацией о клиентах из главной БД, в которой есть все регистры основной информации (ИМЯ БАЗЫ ДАННЫХ, ИМЯ ХОСТА). Я пытался сделать автоматическое c создание БД с соответствующими таблицами, но я понятия не имею, в чем реальная проблема!
Правильный процесс, как только вы закончите, поместите всю информацию на блэйд регистра. форма, следующий шаг, с классом TenantSeeder, вы объявляете, какие объекты вам нужно создать в каждой схеме или БД.
Это мои файлы:
массив 'db' в App \ config \ tenancy. php
'db' => [
/**
* The default connection to use; this overrules the Laravel database.default
* configuration setting. In Laravel this is normally configured to 'mysql'.
* You can set a environment variable to override the default database
* connection to - for instance - the tenant connection 'tenant'.
*/
'default' => env('TENANCY_DEFAULT_CONNECTION'),
/**
* Used to give names to the system and tenant database connections. By
* default we configure 'system' and 'tenant'. The tenant connection
* is set up automatically by this package.
*
* @see src/Database/Connection.php
* @var system-connection-name The database connection name to use for the global/system database.
* @var tenant-connection-name The database connection name to use for the tenant database.
*/
'system-connection-name' => env('TENANCY_SYSTEM_CONNECTION_NAME', Connection::DEFAULT_SYSTEM_NAME),
'tenant-connection-name' => env('TENANCY_TENANT_CONNECTION_NAME', Connection::DEFAULT_TENANT_NAME),
/**
* The tenant division mode specifies to what database websites will be
* connecting. The default setup is to use a new database per tenant.
* If using PostgreSQL, a new schema per tenant in the same database can
* be setup, by optionally setting division mode to 'schema'.
* In case you prefer to use the same database with a table prefix,
* set the mode to 'prefix'.
* To implement a custom division mode, set this to 'bypass'.
*
* @see src/Database/Connection.php
*/
'tenant-division-mode' => env('TENANCY_DATABASE_DIVISION_MODE', 'database'),
/**
* The database password generator takes care of creating a valid hashed
* string used for tenants to connect to the specific database. Do
* note that this will only work in 'division modes' that set up
* a connection to a separate database.
*/
'password-generator' => Hyn\Tenancy\Generators\Database\DefaultPasswordGenerator::class,
/**
* The tenant migrations to be run during creation of a tenant. Specify a directory
* to run the migrations from. If specified these migrations will be executed
* whenever a new tenant is created.
*
* @info set to false to disable auto migrating.
*
* @warn this has to be an absolute path, feel free to use helper methods like
* base_path() or database_path() to set this up.
*/
'tenant-migrations-path' => database_path('migrations/tenant'),
/**
* The default Seeder class used on newly created databases and while
* running artisan commands that fire seeding.
*
* @info requires tenant-migrations-path in order to seed newly created websites.
* @info seeds stored in `database/seeds/tenants` need to be configured in your composer.json classmap.
*
* @warn specify a valid fully qualified class name.
*/
'tenant-seed-class' => Database\Seeds\TenantSeeder::class,
//'tenant-seed-class' => App\Seeders\TenantSeeder::class,
//eg an admin seeder under app/Seeders/AdminSeeder.php:
//'tenant-seed-class' => App\Seeders\AdminSeeder::class,
/**
* Automatically generate a tenant database based on the random id of the
* website.
*
* @info set to false to disable.
*/
'auto-create-tenant-database' => true,
Приложение \ база данных \ seed \ TenantSeeder. php
<?php
use Illuminate\Database\Seeder;
class TenantSeeder extends Seeder
{
/**
* @return void
*
*/
public function run()
{
/* factory(\App\Models\Tenant\Broker::class, 5)->create()->each(function($user)
{
$user->posts()->save(factory(App\Post::class)->make());
} ); */
factory(\App\Models\Tenant\User::class)->create();
}
}
Если вы заметили, я пытаюсь создать новую таблицу на основе моей пользовательской модели.
Ошибка
Следующая ошибка после нажатия enter для регистрации учетной записи с именем хоста
Конечно, есть файл «Соединение», где вы можете найти соответствующую функцию, и когда я пытаюсь сделать как отладку с print_r
и exit();
, она не передает $connection
параметр correclty. появляется что-то вроде «арендатор».
Я надеюсь, что вы можете мне помочь, или если вы хотите больше информации об этом, я буду в ожидании этого!
Спасибо!