Comments (38)
@wahyubaskara: try to change:
"default" => "mysql"
by
"default" => "tenant"
from laravel-multitenancy.
@Saimon-git, have you followed the documentation?
from laravel-multitenancy.
Already working as docs but landlord didn't work how can I login as landlord I make virtual domains in local host for tenants but when I go to project direct with out tenant domain it gives me no database selected issue
from laravel-multitenancy.
The open-source package philosophy lies in free cooperation: if you are here to search for an urgent solution, the best way is to dig inside the code to find it yourself.
Anyway, please create a public GitHub repository with your code to help me to understand where your errors are.
Thanks.
from laravel-multitenancy.
try updating:
'tenant_finder' => null,
to:
'tenant_finder' => Spatie\Multitenancy\TenantFinder\DomainTenantFinder::class,
from laravel-multitenancy.
Not working, same error occurred
from laravel-multitenancy.
What is the output of config('multitenancy')
in a tinker session?
from laravel-multitenancy.
Sorry, how can i get the output?
from laravel-multitenancy.
Run php artisan tinker
from laravel-multitenancy.
Here is the result
from laravel-multitenancy.
what is the output of config('database')
?
from laravel-multitenancy.
from laravel-multitenancy.
Solved! You saved me, thank you👍
from laravel-multitenancy.
@wahyubaskara: try to change:
"default" => "mysql"
by
"default" => "tenant"
Oh my word, this has been tripping me up! Is this in the docs?
from laravel-multitenancy.
@kurucu, no, isn't in the docs because the default connection is a state of mind: depends on your project and your approach.
from laravel-multitenancy.
hello spatie guys and @freekmurze
I am contacting you because I have a problem with the multitenacy package, I can not get the connection to the tenant to work, I have as default connection "tenant" this is the error that I throw
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
from laravel-multitenancy.
@Saimon-git, have you followed the documentation?
thanks @masterix21
from laravel-multitenancy.
I have the same error but all above i made it and still this problem exist
from laravel-multitenancy.
@refaatgamal are you using the SwitchDatabaseTask?
from laravel-multitenancy.
Yes and now all tenants works well but I can't make landlord working but tenants works
from laravel-multitenancy.
@refaatgamal, I'm sure it's a misconfiguration issue. Please dig inside reading our documentation. Thanks.
from laravel-multitenancy.
@refaatgamal got any solution on this issue? I'm trying to implement the laravel multitenancy and facing the same issue that you mentioned in your last comment. Thanks
from laravel-multitenancy.
Sorry, but I still think that is a coding problem. Please create a GitHub repository with your sample code that generates the errors: I'll try to help asap.
from laravel-multitenancy.
I am having the exact same problem after doing this:
"default" => "tenant"
I can login to tenants but NOT to landlord account. getting the same error as:
refaatgamal commented on May 31, 2021
But when I switch the line back to:
'default' => env('DB_CONNECTION', 'mysql'),
Both landlord and tenants started working ! My DB_CONNECTION is pointing to the landlord database
from laravel-multitenancy.
from laravel-multitenancy.
`'default' => 'tenant',
/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'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'),
]) : [],
],
'tenant' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => null,
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'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'),
]) : [],
],
'landlord' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'landlord',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'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'),
]) : [],
],`
from laravel-multitenancy.
@masterix21 Is there a solution to this problem ?
from laravel-multitenancy.
Please post your Admin
model
from laravel-multitenancy.
class Admin extends Authenticatable {
use Notifiable;
protected $table = 'admins';
protected $fillable = [
'email',
'name',
'photo_profile',
'password',
'group_id',
'remember_token',
];
protected $hidden = ['password'];
public function group_id() {
return $this->hasOne(\App\Models\AdminGroup::class, 'id', 'group_id');
}
public function role($name) {
$exists_group_id = $this->getConnection()
->getSchemaBuilder()
->hasColumn($this->getTable(), 'group_id');
if ($exists_group_id) {
$explode_name = explode('_', $name);
if (!empty($this->group_id()->first())) {
$role = $this->group_id()->first()->role()->where('name', $explode_name[0])->first();
if (!empty($role) && $role->{$explode_name[1]} == 'yes') {
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
}
from laravel-multitenancy.
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected (SQL: select * from settings
order by id
desc limit 1) (View: D:\delivery\resources\views\admin\login.blade.php)
I think this problem not related with Admin model
from laravel-multitenancy.
I created two databases and two domains
php artisan serve --port=8001
in two domain I got this problem
from laravel-multitenancy.
Admin model is in the landlord or in the tenant database? Why you didn't prepare your model? Take a look here: https://spatie.be/docs/laravel-multitenancy/v2/installation/using-multiple-databases#content-preparing-models
All models in your project should either use the UsesLandlordConnection or UsesTenantConnection, depending on if the underlying table of the models lives in the landlord or tenant database.
from laravel-multitenancy.
Ok I Will prepare the models
thanks bro ❤️❤️❤️
from laravel-multitenancy.
@masterix21 unfortunately the same problem
:(
I need an urgent solution
from laravel-multitenancy.
ok
thanks 3>
from laravel-multitenancy.
@masterix21 I created new repo and I invited you
from laravel-multitenancy.
@masterix21
here I have all things work very good but my problem is just I can`t migrate tenant database tables after the tenant is created
here is my code
protected static function booted()
{
static::creating(fn(User $model) => $model->createDatabase());
}
public function createDatabase()
{
// add logic to create database
DB::connection()->statement('CREATE DATABASE tenant_' . $this->username);
$this->database = 'tenant_' . $this->username;
Artisan::call('tenants:artisan migrate --tenant=' . $this->id);
}
from laravel-multitenancy.
How can you call $this->id
if createDatabase()
is called during the creating
event?
from laravel-multitenancy.
Related Issues (20)
- MakeQueueTenantAwareAction seems to break active requests when Queue Connection is sync HOT 4
- base table or view not found with AWS SQS queue for job TenantAware HOT 15
- randomly receive Invalid catalog name: 1046 No database selected (Connection: mysql, SQL: insert into failed_jobs (uuid, connection, queue, payload, exception, failed_at) on queue sqs HOT 5
- Tenant Aware Queue Fails No Database Selected when running from supervisor in a multi tenant environment using AWS SQS FIFO HOT 2
- Update documentation at https://spatie.be to `v3` HOT 3
- in_array(): Argument #2 ($haystack) must be of type array, null given {"exception":"[object] (TypeError(code: 0): in_array(): Argument #2 ($haystack) must be of type array, null given at /spatie/laravel-multitenancy/src/Actions/MakeQueueTenantAwareAction.php:79) HOT 1
- Cache issue with spatie/laravel-permission in TenantAware Command HOT 5
- Issue with the has function on different connections HOT 1
- I want to Connect to mongo DB for some tables but it is giving "Database connection [mongodb] not configured.", exception: "InvalidArgumentException",…} error
- Custom cache driver missing when switching Tenant HOT 4
- Cannot schedule jobs in Laravel 11 HOT 3
- Can't make route not tenant aware
- Erro during Laravel 11 for Notification multitenacy for multi-database
- Problem to install in Laravel 11 HOT 1
- Laravel 11: Multiple database does not switch and use tenant database HOT 2
- NeedsTenant with route model binding HOT 4
- Spatie\Multitenancy\Concerns\UsesMultitenancyConfig should be moved to ImplementsTenant? HOT 2
- getConnectionName() not compatible - ?string
- Session store not set on request HOT 3
- Switching tenants in the jobs queue HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-multitenancy.