divineomega / uxdm-eloquent
Eloquent package for the UXDM data migrator
Fund package maintenance!
DivineOmega
Installs: 15 064
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 2
Open Issues: 1
Requires
- divineomega/uxdm: ^3.0.0||^4.0.0
- illuminate/database: ^5.1||^6.0||^7.0||^8.0||^9.0||^10.0
- illuminate/support: ^5.1||^6.0||^7.0||^8.0||^9.0||^10.0
Requires (Dev)
- ext-pdo_sqlite: *
- ext-sqlite3: *
- fzaninotto/faker: ^1.6
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^7.0||^8.0
README
The UXDM Eloquent package provides a UXDM source and destination for the Eloquent ORM, commonly used in Laravel projects.
Installation
To install the UXDM Eloquent package, just run the following composer command.
composer require divineomega/uxdm-eloquent
UXDM Eloquent Source
The UXDM Eloquent source allows you to source data from an Eloquent model. This can be handy if you need to migrate data from a system using the Eloquent ORM, such as a Laravel project.
Creating
To create a new Eloquent source, you must provide it with the class name of Eloquent model you wish to use.
The following example creates a Eloquent source object, using an Eloquent model called User
in the App
namespace.
$eloquentSource = new EloquentSource(\App\User::class);
You can also pass a query callback as a second parameter to restrict the results returned, as shown below.
$eloquentSource = new EloquentSource(\App\User::class, function($query) { $query->where('id', 1); });
Assigning to migrator
To use the Eloquent source as part of a UXDM migration, you must assign it to the migrator. This process is the same for most sources.
$migrator = new Migrator; $migrator->setSource($eloquentSource);
UXDM Eloquent Destination
The UXDM Eloquent destination allows you to migrate data into an Eloquent model. This can be handy if you need to migrate data into a system using the Eloquent ORM, such as a Laravel project.
Creating
To create a new Eloquent destination, you must provide it with the class name of Eloquent model you wish to use.
The following example creates a Eloquent destination object, using an Eloquent model called User
in the App
namespace.
$eloquentDestination = new EloquentDestination(\App\User::class);
Assigning to migrator
To use the Eloquent destination as part of a UXDM migration, you must assign it to the migrator. This process is the same for most destinations.
$migrator = new Migrator; $migrator->setDestination($eloquentDestination);
Alternatively, you can add multiple destinations, as shown below. You can also specify the fields you wish to send to each destination by passing an array of field names as the second parameter.
$migrator = new Migrator; $migrator->addDestination($eloquentDestination, ['field1', 'field2']); $migrator->addDestination($otherDestination, ['field3', 'field2']);