goldspecdigital/laravel-eloquent-uuid

Postgres / uuid-ossp extension

willishq opened this issue · 1 comments

I’m using Postgres with the uuid-ossp extension which provides the following functionality: uuid_generate_v4() which I have created a macro on the schematic builder for:

Blueprint::macro('primaryUuid', function ($field = 'uuid') {
    $this->uuid($field)->default(\DB::raw('uuid_generate_v4()'))->primary();
});

This requires the $incrementing property on the model to be true (incrementing is a bad choice for this property on Laravel’s side, it basically means “the database handles it”)

Might I suggest that this model utilises the uuid_generate_v4 method to create the UUID for Postgres if the option is available?

Might it be better to create a macro for creating primary UUID columns and add it to the schema builder which sets a default value for a primary UUID?

If this is something you would want to try I could make a PR for it.

Hey @willishq thanks for raising this. This is a cool idea but it doesn't fit in with the aims of this package, as it's specific to a particular database. I think this should be it's own package, perhaps with support for other database specific UUID generation too?