LaravelFreelancerNL / laravel-arangodb

ArangoDB driver for Laravel
MIT License
44 stars 9 forks source link

Laravel 10 error: Create_users_table #110

Closed bridgebrain closed 7 months ago

bridgebrain commented 7 months ago

Trying to implement arango on my new build, ran into this after installing the alpha version of aranguent (which, btw, was I supposed to do that differently? Just using the base install it threw a compatibility error, so I used the v1.0.0-alpha2 version)

2014_10_12_000000_create_users_table`` PHP Fatal error: Declaration of LaravelFreelancerNL\Aranguent\Schema\Builder::call(string $method, mixed $args): void must be compatible with Illuminate\Database\Schema\Builder::call($method, $parameters) in /home/bridgebrain/web/infinatummedia.com/public_html/vendor/laravel-freelancer-nl/aranguent/src/Schema/Builder.php on line 218

Symfony\Component\ErrorHandler\Error\FatalError

Declaration of LaravelFreelancerNL\Aranguent\Schema\Builder::call(string $method, mixed $args): void must be compatible with Illuminate\Database\Schema\Builder::call($method, $parameters)

at vendor/laravel-freelancer-nl/aranguent/src/Schema/Builder.php:218 214▕ 215▕ /* 216▕ Silently catch the use of unsupported builder methods. 217▕ */ ➜ 218▕ public function __call(string $method, mixed $args): void 219▕ { 220▕ Log::warning("The Aranguent Schema Builder doesn't support method '$method'\n"); 221▕ } 222▕ }

Whoops\Exception\ErrorException

Declaration of LaravelFreelancerNL\Aranguent\Schema\Builder::call(string $method, mixed $args): void must be compatible with Illuminate\Database\Schema\Builder::call($method, $parameters)

at vendor/laravel-freelancer-nl/aranguent/src/Schema/Builder.php:218 214▕ 215▕ /* 216▕ Silently catch the use of unsupported builder methods. 217▕ */ ➜ 218▕ public function __call(string $method, mixed $args): void 219▕ { 220▕ Log::warning("The Aranguent Schema Builder doesn't support method '$method'\n"); 221▕ } 222▕ }

  +1 vendor frames

2 [internal]:0 Whoops\Run::handleShutdown()

LaravelFreelancerNL commented 7 months ago

Thank you for you issue report.

I've fixed the bug and released alpha 3.

bridgebrain commented 7 months ago

Thank you! Ran again on the a3 release, got this one next:

INFO Running migrations.

2014_10_12_000000_create_users_table ................................................................................................... 12ms FAIL

TypeError

Illuminate\Database\Migrations\Migration@anonymous(): Argument #1 ($table) must be of type Illuminate\Database\Schema\Blueprint, LaravelFreelancerNL\Aranguent\Schema\Blueprint given, called in /home/bridgebrain/web/infinatummedia.com/public_html/vendor/laravel-freelancer-nl/aranguent/src/Schema/Concerns/UsesBlueprints.php on line 56

at database/migrations/2014_10_12_000000_create_users_table.php:14 10▕ Run the migrations. 11▕ / 12▕ public function up(): void 13▕ { ➜ 14▕ Schema::create('users', function (Blueprint $table) { 15▕ $table->id(); 16▕ $table->string('name'); 17▕ $table->string('email')->unique(); 18▕ $table->timestamp('email_verified_at')->nullable();

1 database/migrations/2014_10_12_000000_create_users_table.php:14 Illuminate\Support\Facades\Facade::__callStatic() +24 vendor frames

26 artisan:35 Illuminate\Foundation\Console\Kernel::handle()

LaravelFreelancerNL commented 7 months ago

Did you run: php artisan aranguent:convert-migrations ?

That should do the trick and create the users collection with indexes. (column functions are ignored)

Note that the command will likely change in the next release as I'm fiddling with the artisan commands atm to get a more streamlined experience.

And I see that this command seems to be missing from the docs. I'll add that with the next release.

bridgebrain commented 7 months ago

Ah! Yes, that worked, fantastic! Thank you so much for building this bridge :D

LaravelFreelancerNL commented 7 months ago

You're welcome. Let me know if you need any help.

bridgebrain commented 5 months ago

Hey, sorry to open this back up, but I rebuilt on a new server, and I'm getting the same error, but when I go to run that command I get " ERROR There are no commands defined in the "aranguent" namespace. "

Edit: Nvm, tinkered some more and ran it without the aranguent (convert:migrations) and it ran. I finally have a few days to work on building my site out with this, so I might be back in for other errors as they crop up. Thanks again!

LaravelFreelancerNL commented 5 months ago

Np, since the last alpha release the artisan commands where brought in line with the Laravel parents and the namespace was removed for new commands.

Note that there is a fallback option for the migration commands should you want to use another database (mysql or whatever) along with arangodb.

Good luck and bring it on ^^

LaravelFreelancerNL commented 5 months ago

Also note that the beta version is around the corner and will drop Laravel 10 in favour of Laravel 11. I'll see if I can get that out today, that should make things easier for you.

bridgebrain commented 5 months ago

I saw the option for a second database in the documents when i was hunting around. Im deliberating setting one up, but i feel like if i have to split my attention through keeping up with both ill drive myself crazy. On the other hand, simpler for standard operations, might actually have something to show people in the next few months instead of more deep tinkering. (I found yet another trove of free self hosted apps today, and valiantly only read every description instead of trying to run and debugging 50 new toys)

LaravelFreelancerNL commented 5 months ago

Yeah, I just use ArangoDB as it does everything I need.

Supporting two types of databases at once was the most requested feature sofar though. Perhaps its easier for some people that have an existing project, or want to replace mongodb (which is often used as a data-dump-store).

LaravelFreelancerNL commented 5 months ago

The beta is out with support for Laravel 11