The official SingleStore Laravel driver.

Overview

SingleStore Driver for Laravel

This repository contains a SingleStore Driver for Laravel.

Install

You can install the package via composer:

composer require singlestoredb/singlestoredb-laravel

Usage

To enable the driver, head to your config/database.php file and create a new entry for SingleStore in your connections, and update your default to point to that new connection:

[
    'default' => env('DB_CONNECTION', 'singlestore'),

    'connections' => [
        'singlestore' => [
            'driver' => 'singlestore',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST'),
            'port' => env('DB_PORT'),
            'database' => env('DB_DATABASE'),
            'username' => env('DB_USERNAME'),
            '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'),
                PDO::ATTR_EMULATE_PREPARES => true,
            ]) : [],
        ],
    ]
]

The SingleStore driver is an extension of the MySQL driver, so you could also just change your driver from mysql to singlestore.

In case you want to store failed jobs in SingleStore, then make sure you also set it as the database in your config/queue.php file. At which point, you may actually prefer to set DB_CONNECTION='singlestore' in your environment variables.

'failed' => [
    'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
    'database' => env('DB_CONNECTION', 'singlestore'),
    'table' => 'failed_jobs',
],

PHP Versions before 8.1

In PHP versions before 8.1, the flag PDO::ATTR_EMULATE_PREPARES results in a bug by which all attributes returned by MySQL (and SingleStoreDB) are returned as strings.

For example, a table with a column named user_id and a type of int(10), if the row value is 5423 we would get a string like "5423" in PHP.

This is a historic and known bug:

The best method to solve this is to upgrade to PHP 8.1 or higher. If that's not possible, Eloquent's attribute casting is the next best solution.

Migrations

This driver provides many SingleStore specific methods for creating or modifying tables. They are listed below. For more information see the Create Table docs on SingleStore.

Rowstore Tables

To create a rowstore table, use the rowstore method.

Schema::create('table', function (Blueprint $table) {
    $table->rowstore();

    // ...
});

Reference Tables

To create a reference table, you may use the reference method.

Schema::create('table', function (Blueprint $table) {
    $table->reference();

    // ...
});

Global Temporary Tables

To create a global temporary table, you may use the global method on the table.

Schema::create('table', function (Blueprint $table) {
    $table->rowstore();
    $table->temporary();
    $table->global();

    // ...
});

You may also use either of the following two methods:

// Fluent
$table->rowstore()->temporary()->global();

// As an argument to `temporary`.
$table->temporary($global = true);

Sparse Columns

You can mark particular columns as sparse fluently by appending sparse to the column's definition.

Schema::create('table', function (Blueprint $table) {
    $table->rowstore();

    $table->string('name')->nullable()->sparse();
});

Sparse Tables

You can mark particular entire tables as sparse fluently by appending sparse to the column's definition.

Schema::create('table', function (Blueprint $table) {
    $table->rowstore();

    $table->string('name');

    $table->sparse();
});

Shard Keys

You can add a shard key to your tables using the standalone shardKey method, or fluently by appending shardKey to the column definition.

Schema::create('table', function (Blueprint $table) {
    $table->string('name');

    $table->shardKey('name');
});

Schema::create('table', function (Blueprint $table) {
    $table->string('name')->shardKey();
});

Schema::create('table', function (Blueprint $table) {
    $table->string('f_name');
    $table->string('l_name');

    $table->shardKey(['f_name', 'l_name']);
});

Sort Keys

You can add a sort key to your tables using the standalone sortKey method, or fluently by appending sortKey to the column definition.

Schema::create('table', function (Blueprint $table) {
    $table->string('name');

    $table->sortKey('name');
});

Schema::create('table', function (Blueprint $table) {
    $table->string('name')->sortKey();
});

Schema::create('table', function (Blueprint $table) {
    $table->string('f_name');
    $table->string('l_name');

    $table->sortKey(['f_name', 'l_name']);
});

Series Timestamps

To denote a column as a series timestamp, use the seriesTimestamp column modifier.

Schema::create('table', function (Blueprint $table) {
    $table->datetime('created_at')->seriesTimestamp();

    // Or make it sparse
    $table->datetime('deleted_at')->nullable()->seriesTimestamp()->sparse();
});

Computed Columns

SingleStore does not support virtual computed columns. You must use Laravel's storedAs method to create a persisted computed column.

Schema::create('test', function (Blueprint $table) {
    $table->integer('a');
    $table->integer('b');
    $table->integer('c')->storedAs('a + b');
});

Testing

Execute the tests using PHPUnit

./vendor/bin/phpunit

To test against an active SingleStore database, create a .env file and populate the following variables:

DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
DB_HOST=

Now when executing your tests, enable the integration tests by running

HYBRID_INTEGRATION=1 ./vendor/bin/phpunit

License

This library is licensed under the Apache 2.0 License.

Resources

User agreement

SINGLESTORE, INC. ("SINGLESTORE") AGREES TO GRANT YOU AND YOUR COMPANY ACCESS TO THIS OPEN SOURCE SOFTWARE CONNECTOR ONLY IF (A) YOU AND YOUR COMPANY REPRESENT AND WARRANT THAT YOU, ON BEHALF OF YOUR COMPANY, HAVE THE AUTHORITY TO LEGALLY BIND YOUR COMPANY AND (B) YOU, ON BEHALF OF YOUR COMPANY ACCEPT AND AGREE TO BE BOUND BY ALL OF THE OPEN SOURCE TERMS AND CONDITIONS APPLICABLE TO THIS OPEN SOURCE CONNECTOR AS SET FORTH BELOW (THIS “AGREEMENT”), WHICH SHALL BE DEFINITIVELY EVIDENCED BY ANY ONE OF THE FOLLOWING MEANS: YOU, ON BEHALF OF YOUR COMPANY, CLICKING THE “DOWNLOAD, “ACCEPTANCE” OR “CONTINUE” BUTTON, AS APPLICABLE OR COMPANY’S INSTALLATION, ACCESS OR USE OF THE OPEN SOURCE CONNECTOR AND SHALL BE EFFECTIVE ON THE EARLIER OF THE DATE ON WHICH THE DOWNLOAD, ACCESS, COPY OR INSTALL OF THE CONNECTOR OR USE ANY SERVICES (INCLUDING ANY UPDATES OR UPGRADES) PROVIDED BY SINGLESTORE. BETA SOFTWARE CONNECTOR

Customer Understands and agrees that it is being granted access to pre-release or “beta” versions of SingleStore’s open source software connector (“Beta Software Connector”) for the limited purposes of non-production testing and evaluation of such Beta Software Connector. Customer acknowledges that SingleStore shall have no obligation to release a generally available version of such Beta Software Connector or to provide support or warranty for such versions of the Beta Software Connector for any production or non-evaluation use.

NOTWITHSTANDING ANYTHING TO THE CONTRARY IN ANY DOCUMENTATION, AGREEMENT OR IN ANY ORDER DOCUMENT, SINGLESTORE WILL HAVE NO WARRANTY, INDEMNITY, SUPPORT, OR SERVICE LEVEL, OBLIGATIONS WITH RESPECT TO THIS BETA SOFTWARE CONNECTOR (INCLUDING TOOLS AND UTILITIES).

APPLICABLE OPEN SOURCE LICENSE: Apache 2.0

IF YOU OR YOUR COMPANY DO NOT AGREE TO THESE TERMS AND CONDITIONS, DO NOT CHECK THE ACCEPTANCE BOX, AND DO NOT DOWNLOAD, ACCESS, COPY, INSTALL OR USE THE SOFTWARE OR THE SERVICES.

Comments
  • Vapor Serverless - Laravel can't find singlestore driver

    Vapor Serverless - Laravel can't find singlestore driver

    Hi,

    The singlestore driver seems incompatible with Vapor.

    From a middleware where we do this : auth()->check() === false

    Here is the error received :

    PDOException
    Illuminate\Database\QueryException
    SQLSTATE[HY000] [2002]  (trying to connect via (null)) (SQL: select * from `user` where `id` = 1024732 limit 1)
    

    Even trying to register singlestore connection in the AppServiceProvider following this issue : https://github.com/singlestore-labs/singlestore-laravel-driver/issues/2 it does not work

    Maybe an extension is missing on Vapor but which one? Is there an incompatibility with Alpine?

    On EC2 it works but not on serverless :(.

    Any idea?

    opened by LucasNCastro 21
  • could not find driver

    could not find driver

    Just installed the package to test out singlestore on a local docker instance. I have the localhost cluster up and running, but when I changed my env connection to the singlestore driver, I get an error of "could not find driver." Singlestore studio and Tableplus are able to connect to the localhost cluster just fine.

    Excited to try it out, but any thoughts? Thanks!

    sitenote: I am using docker-compose and the host is correct. My environment variables are accurate.

    # php artisan --version
    Laravel Framework 9.23.0
    

    .env

    DB_CONNECTION=singlestore
    DB_HOST=singlestore
    DB_PORT=3306
    DB_DATABASE=plutus
    DB_USERNAME=root
    DB_PASSWORD=*****
    

    composer.lock

                "name": "singlestoredb/singlestoredb-laravel",
                "version": "v1.0.0",
                "source": {
                    "type": "git",
                    "url": "https://github.com/singlestore-labs/singlestoredb-laravel-driver.git",
                    "reference": "2dd741545c83301be264d3849ed5018d10a59db0"
                },
    
    opened by IronSinew 15
  • Blueprint::shardKey does not exist.

    Blueprint::shardKey does not exist.

    Getting this error while trying to migrate!

    `2014_10_12_000000_create_users_table .................................................................................................... 3ms FAIL

    BadMethodCallException

    Method Illuminate\Database\Schema\Blueprint::shardKey does not exist.`

    opened by rana01645 12
  • Drop tables one by one

    Drop tables one by one

    Dropping more than one table in a single query is not supported by SingleStore, as we can see in https://github.com/singlestore-labs/singlestore-laravel-driver/issues/3#issuecomment-1151213371.

    This draft PR solves this issue, but the solution can be improved.

    Instead of the one item array per table, I tried using $this->grammar->compileDrop($table) from MySqlGrammar, but it needs the Blueprint which I don't really know how to get.

    I'm leaving this draft PR here, at least as a proof of concept.

    opened by fgilio 8
  • Support hash indexes

    Support hash indexes

    It is not possible to use the index in a columnstore migration:

    COLUMNAR indexes and SKIPLIST indexes cannot be used on the same table

    Would it be possible to detect and default to hash indexes automatically?

    Alternatively add a new hashIndex or usingHash similar to withoutPrimaryKey.

    $table->sortKey();
    
    $table->index(); // defaults to hash index
    $table->index()->usingHash(); // or $table->index()->using('hash');
    $table->hashIndex();
    
    opened by mpskovvang 7
  • Add support for whereFullText

    Add support for whereFullText

    Follow up from https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/9

    This adds support for using Laravel's whereFullText(...) method for full text search.

    Relevant docs pages:

    • https://docs.singlestore.com/managed-service/en/reference/sql-reference/data-definition-language-ddl/create-table.html#fulltext-behavior
    • https://docs.singlestore.com/managed-service/en/reference/sql-reference/full-text-search-functions/match.html

    This would also be the first step to add support for HIGHLIGHT.


    WIP:

    • I need to see if we need to do something more to support orWhereFullText
    • I'm not sure we need to catch the exception and throw a custom one, SingleStore already provides an easily understandable error message
    opened by fgilio 7
  • Issue with global scope

    Issue with global scope

    I have this global scope set up for some of my eloquent models:

            static::addGlobalScope('ordered', function(Builder $builder) {
                $builder->orderBy('sort_order','asc');
            });
    

    What happens here is that on every query that is ran for models of that kind, appends ORDER BYsort_orderASC. Mysql is fine with for instance this query:

    UPDATE
    	`table`
    SET
    	`field_1` = "test"
    WHERE
    	`field_2` IS NULL
    ORDER BY
    	`sort_order` ASC;
    

    But SingleStore does not allow order by on update. Is there any solution to this, other than to remove the use of global scopes in the application?

    opened by 4ice 6
  • Add support for whereFullText

    Add support for whereFullText

    Hi Aaron!

    Another draft PR here, it's missing tests and the implementation is just bare bones.

    I found SingleStore's syntax is slightly different from MySQL, so the version from MySqlGrammar doesn't work with SingleStore.

    What do you think of this? If I get time to work on the tests, I could also add support for HIGHLIGHT.

    opened by fgilio 6
  • Fix many things in Connection

    Fix many things in Connection

    Hello @aarondfrancis!

    composer require --dev nunomaduro/larastan
    vendor/bin/phpstan analyze -c vendor/nunomaduro/larastan/extension.neon -l 5 src/
    

    You will discover things like

    diff --git a/src/Connect/Connection.php b/src/Connect/Connection.php
    index 5c3e52e..14007af 100644
    --- a/src/Connect/Connection.php
    +++ b/src/Connect/Connection.php
    @@ -6,18 +6,17 @@
     namespace SingleStore\Laravel\Connect;
    
     use Illuminate\Database\MySqlConnection;
    -use SingleStore\Laravel\Query;
    -use SingleStore\Laravel\QueryGrammar;
    -use SingleStore\Laravel\Schema;
    -use SingleStore\Laravel\SchemaBuilder;
    -use SingleStore\Laravel\SchemaGrammar;
    +use SingleStore\Laravel\Query\Builder as QueryBuilder;
    +use SingleStore\Laravel\Query\Grammar as QueryGrammar;
    +use SingleStore\Laravel\Schema\Builder as SchemaBuilder;
    +use SingleStore\Laravel\Schema\Grammar as SchemaGrammar;
    
     class Connection extends MySqlConnection
     {
         /**
          * Get a schema builder instance for the connection.
          *
    -     * @return SchemaBuilder
    +     * @return \SingleStore\Laravel\Schema\Builder
          */
         public function getSchemaBuilder()
         {
    @@ -25,36 +24,40 @@ class Connection extends MySqlConnection
                 $this->useDefaultSchemaGrammar();
             }
    
    -        return new Schema\Builder($this);
    +        return new SchemaBuilder($this);
         }
    
         /**
          * Get the default query grammar instance.
          *
    -     * @return QueryGrammar
    +     * @return \Illuminate\Database\Grammar
          */
         protected function getDefaultQueryGrammar()
         {
    -        return $this->withTablePrefix(new Query\Grammar);
    +        return $this->withTablePrefix(new QueryGrammar);
         }
    
         /**
          * Get the default schema grammar instance.
          *
    -     * @return SchemaGrammar
    +     * @return \Illuminate\Database\Grammar
          */
         protected function getDefaultSchemaGrammar()
         {
    -        return $this->withTablePrefix(new Schema\Grammar);
    +        return $this->withTablePrefix(new SchemaGrammar);
         }
    
         /**
          * Get a new query builder instance.
    +     *
    +     * @return \SingleStore\Laravel\Query\Builder
          */
         public function query()
         {
    -        return new Query\Builder(
    -            $this, $this->getQueryGrammar(), $this->getPostProcessor()
    +        return new QueryBuilder(
    +            $this,
    +            $this->getQueryGrammar(),
    +            $this->getPostProcessor()
             );
         }
     }
    

    Do you like static analysis?

    opened by szepeviktor 6
  • Laravel can't find singlestore driver

    Laravel can't find singlestore driver

    First of all, congrats on the package release!

    I've found a bug the following bug. image

    This gets thrown if you use database as your cache driver. In this case it was thrown because the RouteServiceProvider.php uses rate limiting which uses cache which uses the database.

    My guess is that the RouteServiceProvider gets processed before the SingleStoreServiceProvider.

    For the people running into this issue, you can solve it by adding the SingleStoreProvider code to your AppServiceProvider. Note: this is a temporary fix! image

    opened by larskoole 6
  • php artisan migrate:fresh doesn't work

    php artisan migrate:fresh doesn't work

    As the title states, the command php artisan migrate:fresh doesn't work.

    This also impacts unit tests which use the RefreshDatabase trait.

    The error: SQLSTATE[HY000]: General error: 1295 This command is not supported in the prepared statement protocol yet (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')

    image
    opened by larskoole 5
  • problem with transactions

    problem with transactions

    An error occurs when trying multiple transactions at once.

    "message": "There is already an active transaction",
    "exception": "PDOException",
    

    example code

            DB::beginTransaction();
            MarketingAgreementLog::create([
                'user_id' => 1,
                'is_agreement' => true,
                'type' => 'update_profile',
            ]);
            DB::rollBack();
    
            DB::beginTransaction();
            MarketingAgreementLog::create([
                'user_id' => 1,
                'is_agreement' => true,
                'type' => 'update_profile',
            ]);
            DB::rollBack();
    
            DB::beginTransaction();
            MarketingAgreementLog::create([
                'user_id' => 1,
                'is_agreement' => true,
                'type' => 'update_profile',
            ]);
            DB::commit();
    

    The code below works normally on mysql, but an error occurs on singlestore.

    Is it a natural result due to the difference between single store and mysql?

    Or is it an error that needs to be corrected?

    environment

    php 8.1.13 laravel 9.45 singlestoredb-laravel 1.4.1 singlestore db version 8.0.4

    opened by anym0re 0
  • Add support for the

    Add support for the "change"-function

    It would be great if this feature was supported.

    As I understand, the following would have to be done in order to change a field (This example changes a field called "name" from a varchar to text):

    1. Add a column of the desired type (ALTER TABLE table_name ADD COLUMN field2 TEXT CHARACTER SET utf8mb4 DEFAULT NULL COLLATE utf8mb4_unicode_ci; )
    2. Fill values in this column with the column you want to change the data type (UPDATE table_name SET name2 = name;)
    3. Remove the previous column (ALTER TABLE table_name DROP COLUMN name;)
    4. Change the name of the new column (ALTER TABLE table_name CHANGE name2 name;)

    Would it be possible to implement this? Or is there already another way to do this?

    enhancement good first issue help wanted 
    opened by 4ice 6
Releases(v1.4.1)
  • v1.4.1(Dec 19, 2022)

    What's Changed

    • Changed definitions of overridden functions to match the original by @AdalbertMemSQL in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/49

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.4.0...v1.4.1

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Dec 8, 2022)

    What's Changed

    • add rename table support by @xdroidteam in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/47
    • update workflows to pinned ubuntu version by @carlsverre in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/48

    New Contributors

    • @xdroidteam made their first contribution in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/47

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.3.0...v1.4.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Dec 2, 2022)

    What's Changed

    • Add support for whereFullText by @fgilio in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/30

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.2.2...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Dec 1, 2022)

    What's Changed

    • Fixed incorrect generation of union queries by @AdalbertMemSQL in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/46

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.2.1...v1.2.2

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Nov 29, 2022)

    What's Changed

    • Cleanup, formatting, tests by @carlsverre in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/42
    • Fixed the json_type is not a function error. by @AdalbertMemSQL in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/45

    New Contributors

    • @AdalbertMemSQL made their first contribution in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/45

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.2.0...v1.2.1

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Oct 20, 2022)

    What's Changed

    • Add empty Sort Key support by @srdante in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/36

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.1.0...v1.2.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Sep 21, 2022)

    What's Changed

    • Sort key direction support improvement by @srdante in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/28
    • Implement Sort Key per-column direction feature by @srdante in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/29

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.0.3...v1.1.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.3(Sep 20, 2022)

    What's Changed

    • Add withoutPrimaryKey method for increment columns by @srdante in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/26
    • Implement with statement for sortKey by @srdante in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/25

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.0.2...v1.0.3

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Sep 16, 2022)

    What's Changed

    • Upgrade and fix singlestore image by @carlsverre in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/27
    • Implement sortKey direction argument by @srdante in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/24
    • Improvements to the README

    New Contributors

    • @srdante made their first contribution in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/24

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.0.1...v1.0.2

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Aug 24, 2022)

    What's Changed

    • 📝 updated shard key singlestore documentation link by @DanielFerguson in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/14
    • Fix Sparse Modifiers by @aarondfrancis in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/20

    New Contributors

    • @DanielFerguson made their first contribution in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/14

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v1.0.0...v1.0.1

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jun 30, 2022)

    This is the first release of the 1 series! 🎉 Thank you to all the folks who helped us beta test the 0 series.

    What's Changed

    • The package name has changed from singlestore/singlestore-laravel to singlestoredb/singlestoredb-laravel. Note the additional db. If you used the zero series, you'll need to remove the old package and require the new one.
    • Drop tables one by one by @fgilio in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/8
    • Add Laravel Pint by @aarondfrancis in https://github.com/singlestore-labs/singlestoredb-laravel-driver/pull/12

    Full Changelog: https://github.com/singlestore-labs/singlestoredb-laravel-driver/compare/v0.0.3...v1.0.0

    Source code(tar.gz)
    Source code(zip)
  • v0.0.3(Jun 9, 2022)

    What's Changed

    • Mention how to use it for failed jobs storage by @fgilio in https://github.com/singlestore-labs/singlestore-laravel-driver/pull/6
    • Use client-side prepared statements by @fgilio in https://github.com/singlestore-labs/singlestore-laravel-driver/pull/7

    Full Changelog: https://github.com/singlestore-labs/singlestore-laravel-driver/compare/v0.0.2...v0.0.3

    Source code(tar.gz)
    Source code(zip)
  • v0.0.2(Jun 8, 2022)

    What's Changed

    • Add Package Auto-Discovery by @fgilio in https://github.com/singlestore-labs/singlestore-laravel-driver/pull/5

    New Contributors

    • @fgilio made their first contribution in https://github.com/singlestore-labs/singlestore-laravel-driver/pull/5

    Full Changelog: https://github.com/singlestore-labs/singlestore-laravel-driver/compare/v0.0.1...v0.0.2

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1(May 31, 2022)

Owner
SingleStore Labs
The home of SingleStore community content
SingleStore Labs
Laravel Scout provides a driver based solution to searching your Eloquent models.

Introduction Laravel Scout provides a simple, driver-based solution for adding full-text search to your Eloquent models. Once Scout is installed and c

The Laravel Framework 1.3k Dec 31, 2022
Elasticsearch driver for Laravel Scout

Elasticsearch driver for Laravel Scout. Contents Compatibility Installation Configuration Basic Usage Advanced Search Migrations Pitfalls Compatibilit

Ivan Babenko 197 Dec 19, 2022
Think-scout - A driver based solution to searching your models. Inspired By Laravel Scout

前言 whereof/think-scout根据thinkphp设计思想参考laravel/scout进行扩展 whereof/think-scout 为模型的全文搜索提供了一个简单的、基于驱动程序的解决方案。 目前,Scout 自带了一个 Elasticsearch 驱动;而编写自定义驱动程序很简

wangzhiqiang 6 Mar 18, 2022
A scout DB fulltext-based driver that store index data in related tables

A scout DB fulltext-based driver that store index data in related tables This package provide a Laravel/Scout Engine based on database/fulltext only,

Ivano Matteo 10 Nov 10, 2022
Official PHP low-level client for Elasticsearch.

elasticsearch-php Official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in PHP; because

elastic 5k Dec 31, 2022
Official PHP low-level client for Elasticsearch.

elasticsearch-php Official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in PHP; because

elastic 5k Jan 1, 2023
[Deprecated] We now recommend using Laravel Scout, see =>

[DEPRECATED] Algolia Search API Client for Laravel Algolia Search is a hosted full-text, numerical, and faceted search engine capable of delivering re

Algolia 240 Nov 25, 2022
Maps Laravel Eloquent models to Elasticsearch types

Elasticquent Elasticsearch for Eloquent Laravel Models Elasticquent makes working with Elasticsearch and Eloquent models easier by mapping them to Ela

Elasticquent 1.3k Jan 4, 2023
Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a fluent syntax for mapping, querying, and storing eloquent models.

Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a f

Sleiman Sleiman 511 Dec 31, 2022
A search package for Laravel 5.

Search Package for Laravel 5 This package provides a unified API across a variety of different full text search services. It currently supports driver

Mark Manos 354 Nov 16, 2022
A php trait to search laravel models

Searchable, a search trait for Laravel Searchable is a trait for Laravel 4.2+ and Laravel 5.0 that adds a simple search function to Eloquent Models. S

Nicolás López Jullian 2k Dec 27, 2022
Unmaintained: Laravel Searchy makes user driven searching easy with fuzzy search, basic string matching and more to come!

!! UNMAINTAINED !! This package is no longer maintained Please see Issue #117 Here are some links to alternatives that you may be able to use (I do no

Tom Lingham 533 Nov 25, 2022
Elasticsearch migrations for Laravel

Elastic Migrations Elasticsearch migrations for Laravel allow you to easily modify and share indices schema across the application's environments. Con

Ivan Babenko 151 Dec 20, 2022
Fulltext indexing and searching for Laravel

Laravel fulltext index and search This package creates a MySQL fulltext index for models and enables you to search through those. Install Install with

SWIS 171 Jan 4, 2023
Search among multiple models with ElasticSearch and Laravel Scout

For PHP8 support use php8 branch For Laravel Framework < 6.0.0 use 3.x branch The package provides the perfect starting point to integrate ElasticSear

Sergey Shlyakhov 592 Dec 25, 2022
This is an open source demo of smart search feature implemented with Laravel and Selectize plugin

Laravel smart search implementation See demo at: http://demos.maxoffsky.com/shop-search/ Tutorial at: http://maxoffsky.com/code-blog/laravel-shop-tuto

Maksim Surguy 215 Sep 8, 2022
ScoutAPM PHP Agent for the Laravel Framework

Scout Laravel APM Agent Monitor the performance of PHP Laravel applications with Scout's PHP APM Agent. Detailed performance metrics and transaction t

Scout APM 22 Jan 2, 2023
Laravel package to search through multiple Eloquent models. Supports sorting, pagination, scoped queries, eager load relationships and searching through single or multiple columns.

Laravel Cross Eloquent Search This Laravel package allows you to search through multiple Eloquent models. It supports sorting, pagination, scoped quer

Protone Media 844 Dec 25, 2022
Laravel 8.* Elasticsearch Eloquent

Elasticsearch Installation composer require etsetra/elasticsearch Create config file $ php artisan vendor:publish --tag="etsetra-elasticsearch-config

Etsetra 2 Jan 14, 2022