pixelfed/docs

Document REDIS_PATH

Opened this issue · 5 comments

Hello,

I just try to install a new pixelfed today but failed when I run php artisan migrate --force

Database version

root@pixelfed ~ # mysql --version
mysql  Ver 15.1 Distrib 10.6.11-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper

Firstly, I try to use 127.0.0.1 as the DB_HOST but failed:


   Illuminate\Database\QueryException 

  SQLSTATE[HY000] [1045] Access denied for user 'pixelfed_user2'@'127.0.0.1' (using password: YES) (SQL: select * from information_schema.tables where table_schema = pixelfed_database2 and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
    708▕         // If an exception occurs when attempting to run a query, we'll format the error
    709▕         // message to include the bindings with SQL, which will make this exception a
    710▕         // lot more helpful to the developer instead of just the database's errors.
    711▕         catch (Exception $e) {
  ➜ 712▕             throw new QueryException(
    713▕                 $query, $this->prepareBindings($bindings), $e
    714▕             );
    715▕         }
    716▕     }

      +36 vendor frames

Then I switch to DB_SOCKET

   InvalidArgumentException 

  Missing UNIX domain socket path.

  at vendor/predis/predis/src/Connection/StreamConnection.php:193
    189▕      */
    190▕     protected function unixStreamInitializer(ParametersInterface $parameters)
    191▕     {
    192▕         if (!isset($parameters->path)) {
  ➜ 193▕             throw new \InvalidArgumentException('Missing UNIX domain socket path.');
    194▕         }
    195▕ 
    196▕         $flags = STREAM_CLIENT_CONNECT;
    197▕ 

      +21 vendor frames 
  22  database/migrations/2021_08_30_050137_add_software_column_to_instances_table.php:44
      App\Jobs\InstancePipeline\InstanceCrawlPipeline::dispatch()

  23  database/migrations/2021_08_30_050137_add_software_column_to_instances_table.php:24
      AddSoftwareColumnToInstancesTable::runPostMigration()

When I try to run the second time:

Migrating: 2021_08_30_050137_add_software_column_to_instances_table

   Illuminate\Database\QueryException 

  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'software' (SQL: alter table `instances` add `software` varchar(191) null, add `user_count` int unsigned null, add `status_count` int unsigned null, add `last_crawled_at` timestamp null)

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
    708▕         // If an exception occurs when attempting to run a query, we'll format the error
    709▕         // message to include the bindings with SQL, which will make this exception a
    710▕         // lot more helpful to the developer instead of just the database's errors.
    711▕         catch (Exception $e) {
  ➜ 712▕             throw new QueryException(
    713▕                 $query, $this->prepareBindings($bindings), $e
    714▕             );
    715▕         }
    716▕     }

      +12 vendor frames 
  13  database/migrations/2021_08_30_050137_add_software_column_to_instances_table.php:22
      Illuminate\Support\Facades\Facade::__callStatic()

      +22 vendor frames 
  36  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

@Showfom since you have a new install, have you tried php artisan db:wipe and starting the install from the beginning?

@Showfom since you have a new install, have you tried php artisan db:wipe and starting the install from the beginning?

I tried, also I drop the whole database and created a new one, that's why the db name is pixelfed_database2

Still this error:

Migrated:  2021_08_23_062246_update_stories_table_fix_expires_at_column (213.99ms)
Migrating: 2021_08_30_050137_add_software_column_to_instances_table

   InvalidArgumentException 

  Missing UNIX domain socket path.

  at vendor/predis/predis/src/Connection/StreamConnection.php:193
    189▕      */
    190▕     protected function unixStreamInitializer(ParametersInterface $parameters)
    191▕     {
    192▕         if (!isset($parameters->path)) {
  ➜ 193▕             throw new \InvalidArgumentException('Missing UNIX domain socket path.');
    194▕         }
    195▕ 
    196▕         $flags = STREAM_CLIENT_CONNECT;
    197▕ 

      +21 vendor frames 
  22  database/migrations/2021_08_30_050137_add_software_column_to_instances_table.php:44
      App\Jobs\InstancePipeline\InstanceCrawlPipeline::dispatch()

  23  database/migrations/2021_08_30_050137_add_software_column_to_instances_table.php:24
      AddSoftwareColumnToInstancesTable::runPostMigration()

I also tried the unreleased version from Github and the v0.11.4 version from https://github.com/pixelfed/pixelfed/releases/tag/v0.11.4

Both failed :(

Problem solved after changing redis back to tcp instead of unix

Looks like the installation instructions are out of date, you need REDIS_PATH instead of REDIS_HOST for a unix socket.

stumbled on this today, it's unfortunate that the error message doesn't make it clear that this is an issue with redis setup rather than postgresql.