1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-04 20:34:03 +00:00

finally fixed the migrations issue

This commit is contained in:
Samuel Štancl 2019-08-15 21:37:46 +02:00
parent 170392f15f
commit f7ca2937fd
5 changed files with 32 additions and 16 deletions

View file

@ -11,7 +11,7 @@ class RedisStorageDriver implements StorageDriver
public function __construct() public function __construct()
{ {
$this->redis = Redis::connection('tenancy'); $this->redis = Redis::connection(config('tenancy.redis.connection', 'tenancy'));
} }
public function identifyTenant(string $domain): array public function identifyTenant(string $domain): array

View file

@ -20,12 +20,17 @@ class Tenant extends Model
public function dataColumn() public function dataColumn()
{ {
return config('tenancy.db_storage.data_column', 'data'); return config('tenancy.storage.db.data_column', 'data');
} }
public function customColumns() public function customColumns()
{ {
return config('tenancy.db_storage.custom_columns', []); return config('tenancy.storage.db.custom_columns', []);
}
public function getConnectionName()
{
return config('tenancy.storage.db.connection');
} }
public function getFromData(string $key) public function getFromData(string $key)

View file

@ -2,9 +2,17 @@
return [ return [
'storage_driver' => 'Stancl\Tenancy\StorageDrivers\DatabaseStorageDriver', 'storage_driver' => 'Stancl\Tenancy\StorageDrivers\DatabaseStorageDriver',
'db_storage' => [ 'storage' => [
'data_column' => 'data', 'db' => [
'custom_columns' => [], 'data_column' => 'data',
'custom_columns' => [
// 'plan',
],
'connection' => 'central',
],
'redis' => [
'connection' => 'tenancy',
],
], ],
'tenant_route_namespace' => 'App\Http\Controllers', 'tenant_route_namespace' => 'App\Http\Controllers',
'exempt_domains' => [ 'exempt_domains' => [

View file

@ -14,8 +14,11 @@ class CreateTenantsTable extends Migration
public function up() public function up()
{ {
Schema::create('tenants', function (Blueprint $table) { Schema::create('tenants', function (Blueprint $table) {
$table->string('uuid', 36)->primary(); $table->string('uuid', 36)->primary(); // don't change this
$table->string('domain', 255)->index(); $table->string('domain', 255)->index(); // don't change this
// your indexed columns go here
$table->json('data')->default('{}'); $table->json('data')->default('{}');
}); });
} }

View file

@ -24,14 +24,8 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
Redis::connection('tenancy')->flushdb(); Redis::connection('tenancy')->flushdb();
Redis::connection('cache')->flushdb(); Redis::connection('cache')->flushdb();
// $this->loadLaravelMigrations(); config(['database.default' => 'central']);
$this->loadMigrationsFrom(realpath(__DIR__ . '/../src/assets/migrations'));
Artisan::call('migrate:install');
// $this->loadMigrationsFrom(realpath(__DIR__ . '/../src/assets/migrations'));
// Artisan::call('migrate:fresh', [
// '--path' => __DIR__ . '/../src/assets/migrations'
// ]);
if ($this->autoCreateTenant) { if ($this->autoCreateTenant) {
$this->createTenant(); $this->createTenant();
@ -64,6 +58,8 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
\Dotenv\Dotenv::create(__DIR__ . '/..')->load(); \Dotenv\Dotenv::create(__DIR__ . '/..')->load();
} }
fclose(fopen(database_path('central.sqlite'), 'w'));
$app['config']->set([ $app['config']->set([
'database.redis.cache.host' => env('TENANCY_TEST_REDIS_HOST', '127.0.0.1'), 'database.redis.cache.host' => env('TENANCY_TEST_REDIS_HOST', '127.0.0.1'),
'database.redis.default.host' => env('TENANCY_TEST_REDIS_HOST', '127.0.0.1'), 'database.redis.default.host' => env('TENANCY_TEST_REDIS_HOST', '127.0.0.1'),
@ -77,6 +73,10 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
'database' => env('TENANCY_TEST_REDIS_DB', 14), 'database' => env('TENANCY_TEST_REDIS_DB', 14),
'prefix' => 'abc', // todo unrelated to tenancy, but this doesn't seem to have an effect? try to replicate in a fresh laravel installation 'prefix' => 'abc', // todo unrelated to tenancy, but this doesn't seem to have an effect? try to replicate in a fresh laravel installation
], ],
'database.connections.central' => [
'driver' => 'sqlite',
'database' => database_path('central.sqlite'),
],
'tenancy.database' => [ 'tenancy.database' => [
'based_on' => 'sqlite', 'based_on' => 'sqlite',
'prefix' => 'tenant', 'prefix' => 'tenant',