Search code examples
laravelvoyager

How to safely uninstall Voyager in Laravel?


After update Laravel to 5.8.* Voyager is completely broken

Suddenly BREADS are broken, searchable is

Undefined variable

Call to a member function getTranslatedAttribute() on null

appears every time...

I am thinking about completely uninstall Voyager for good.

How do I uninstall it? Any hints, please?


Solution

  • Voyager entangles itself in the Laravel application so simply doing

    composer remove tcg/voyager
    

    may not be enough

    • remove larapack hooks repository from composer.json
    "repositories": {
            "hooks": {
                "type": "composer",
                "url": "https://larapack.io"
            }
        }
    

    Also delete the hooks directory on the root of your project

    • remove voyager routes from routes/web.php
    Route::group(['prefix' => 'admin'], function () {
        Voyager::routes();
    });
    
    • Remove Package information from config (if added)

    File: config/app.php comment or delete following lines.

    /*
     * Package Service Providers...
     */
    TCG\Voyager\VoyagerServiceProvider::class,
    
    • Let the user model extends Auth\User instead of Voyager's user

    From this

    class User extends \TCG\Voyager\Models\User
    

    To this

    use Illuminate\Foundation\Auth\User as Authenticatable;
    
    class User extends Authenticatable
    
    • delete voyager config from config/voyager.php
    • remove voyager migrations from database/migrations
    2016_01_01_000000_create_pages_table.php
    2016_01_01_000000_create_posts_table.php
    2016_02_15_204651_create_categories_table.php
    2017_04_11_000000_alter_post_nullable_fields_table.php
    
    • remove database seeders from database/seeds
    CategoriesTableSeeder.php
    DataRowsTableSeeder.php
    DataTypesTableSeeder.php
    MenuItemsTableSeeder.php
    MenusTableSeeder.php
    PagesTableSeeder.php
    PermissionRoleTableSeeder.php
    PermissionsTableSeeder.php
    PostsTableSeeder.php
    RolesTableSeeder.php
    SettingsTableSeeder.php
    TranslationsTableSeeder.php
    UsersTableSeeder.php
    VoyagerDatabaseSeeder.php
    VoyagerDummyDatabaseSeeder.php
    
    • And finally remove public/vendor/tcg folder to remove static assets