mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-25 21:54:14 -08:00
Feature: PostgreSQL support (#5642)
* Made migrations work with pgsql and changing empty integers to null * Fixed the last functional test
This commit is contained in:
parent
98b20fc1cd
commit
9dc226e3d6
|
@ -46,12 +46,13 @@ class AssetRequest extends Request
|
||||||
|
|
||||||
$rules['asset_tag'] = ($settings->auto_increment_assets == '1') ? 'max:255' : 'required';
|
$rules['asset_tag'] = ($settings->auto_increment_assets == '1') ? 'max:255' : 'required';
|
||||||
|
|
||||||
|
if($this->request->get('model_id') != '') {
|
||||||
$model = AssetModel::find($this->request->get('model_id'));
|
$model = AssetModel::find($this->request->get('model_id'));
|
||||||
|
|
||||||
if (($model) && ($model->fieldset)) {
|
if (($model) && ($model->fieldset)) {
|
||||||
$rules += $model->fieldset->validation_rules();
|
$rules += $model->fieldset->validation_rules();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,77 @@ class SnipeModel extends Model
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setFieldSetIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['fieldset_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setCompanyIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['company_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setWarrantyMonthsAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['warranty_months'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setRtdLocationIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['rtd_location_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDepartmentIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['department_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setManagerIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['manager_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setModelIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['model_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setStatusIdAttribute($value)
|
||||||
|
{
|
||||||
|
if($value == '') {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$this->attributes['status_id'] = $value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
public function getDisplayNameAttribute()
|
public function getDisplayNameAttribute()
|
||||||
|
|
|
@ -22,9 +22,11 @@ class FixBadAssignedToIds extends Migration {
|
||||||
$table->text('notes')->nullable();
|
$table->text('notes')->nullable();
|
||||||
});
|
});
|
||||||
|
|
||||||
DB::statement('INSERT into ' . DB::getTablePrefix() . 'status_labels (user_id, name, deployable, pending, archived, notes) VALUES (1,"Pending",0,1,0,"These assets are not yet ready to be deployed, usually because of configuration or waiting on parts.")');
|
DB::table('status_labels')->insert([
|
||||||
DB::statement('INSERT into ' . DB::getTablePrefix() . 'status_labels (user_id, name, deployable, pending, archived, notes) VALUES (1,"Ready to Deploy",1,0,0,"These assets are ready to deploy.")');
|
['user_id' => 1, 'name' => 'Pending', 'deployable' => 0, 'pending' => 1, 'archived' => 0, 'notes' => 'These assets are not yet ready to be deployed, usually because of configuration or waiting on parts.'],
|
||||||
DB::statement('INSERT into ' . DB::getTablePrefix() . 'status_labels (user_id, name, deployable, pending, archived, notes) VALUES (1,"Archived",0,0,1,"These assets are no longer in circulation or viable.")');
|
['user_id' => 1, 'name' => 'Ready to Deploy', 'deployable' => 1, 'pending' => 0, 'archived' => 0, 'notes' => 'These assets are ready to deploy.'],
|
||||||
|
['user_id' => 1, 'name' => 'Archived', 'deployable' => 0, 'pending' => 0, 'archived' => 1, 'notes' => 'These assets are no longer in circulation or viable.'],
|
||||||
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,7 @@ class MigrateDataToNewStatuses extends Migration {
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
// get newly added statuses from last migration
|
// get newly added statuses from last migration
|
||||||
$statuses = DB::select('select * from ' . DB::getTablePrefix() . 'status_labels where name="Pending" OR name="Ready to Deploy"');
|
$statuses = DB::table('status_labels')->where('name', 'Pending')->orWhere('name', 'Ready to Deploy')->get();
|
||||||
|
|
||||||
|
|
||||||
foreach ($statuses as $status) {
|
foreach ($statuses as $status) {
|
||||||
if ($status->name =="Pending") {
|
if ($status->name =="Pending") {
|
||||||
|
@ -25,7 +24,8 @@ class MigrateDataToNewStatuses extends Migration {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pending
|
// Pending
|
||||||
$pendings = DB::select('select * from ' . DB::getTablePrefix() . 'assets where status_id IS NULL AND physical=1 ');
|
$pendings = DB::table('assets')->where('status_id', null)->where('physical', '1')->get();
|
||||||
|
|
||||||
|
|
||||||
foreach ($pendings as $pending) {
|
foreach ($pendings as $pending) {
|
||||||
DB::update('update ' . DB::getTablePrefix() . 'assets set status_id = ? where status_id IS NULL AND physical=1',$pending_id);
|
DB::update('update ' . DB::getTablePrefix() . 'assets set status_id = ? where status_id IS NULL AND physical=1',$pending_id);
|
||||||
|
@ -34,7 +34,7 @@ class MigrateDataToNewStatuses extends Migration {
|
||||||
|
|
||||||
|
|
||||||
// Ready to Deploy
|
// Ready to Deploy
|
||||||
$rtds = DB::select('select * from ' . DB::getTablePrefix() . 'assets where status_id = 0 AND physical=1 ');
|
$rtds = DB::table('assets')->where('status_id', 0)->where('physical', '1')->get();
|
||||||
|
|
||||||
foreach ($rtds as $rtd) {
|
foreach ($rtds as $rtd) {
|
||||||
//DB::update('update users set votes = 100 where name = ?', array('John'));
|
//DB::update('update users set votes = 100 where name = ?', array('John'));
|
||||||
|
|
|
@ -18,8 +18,11 @@ class UpdateAcceptedAtToAcceptanceId extends Migration {
|
||||||
$table->integer('accepted_id')->nullable()->default(NULL);
|
$table->integer('accepted_id')->nullable()->default(NULL);
|
||||||
});
|
});
|
||||||
|
|
||||||
$results = DB::select('select invitation.id AS invitation_id, acceptance.id AS acceptance_id FROM '.DB::getTablePrefix().'asset_logs invitation INNER JOIN '.DB::getTablePrefix().'asset_logs acceptance ON (invitation.checkedout_to=acceptance.checkedout_to AND invitation.asset_id=acceptance.asset_id) WHERE invitation.action_type="checkout" AND acceptance.action_type="accepted"');
|
$results = DB::table('asset_logs as invitation')->join('asset_logs as acceptance', function($join) {
|
||||||
|
$join->on('invitation.checkedout_to', '=', 'acceptance.checkedout_to');
|
||||||
|
$join->on('invitation.asset_id', '=', 'acceptance.asset_id');
|
||||||
|
})->select('invitation.id as invitation_id', 'acceptance.id as acceptance_id')
|
||||||
|
->where('invitation.action_type', 'checkout')->where('acceptance.action_type', 'accepted')->get();
|
||||||
|
|
||||||
foreach ($results as $result) {
|
foreach ($results as $result) {
|
||||||
$update = DB::update('update '.DB::getTablePrefix().'asset_logs set accepted_id=? where id=?', [$result->acceptance_id, $result->invitation_id]);
|
$update = DB::update('update '.DB::getTablePrefix().'asset_logs set accepted_id=? where id=?', [$result->acceptance_id, $result->invitation_id]);
|
||||||
|
|
|
@ -13,7 +13,7 @@ class MoveEmailToUsername extends Migration {
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
DB::update('UPDATE `'.DB::getTablePrefix().'users` SET `username`=`email`');
|
DB::update('UPDATE '.DB::getTablePrefix().'users SET username=email');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,14 +18,14 @@ class AddCurrencyToSettingsAndLocations extends Migration {
|
||||||
$table->string('default_currency',10)->nullable()->default(NULL);
|
$table->string('default_currency',10)->nullable()->default(NULL);
|
||||||
});
|
});
|
||||||
|
|
||||||
DB::update('UPDATE `'.DB::getTablePrefix().'settings` SET `default_currency`="'. trans('general.currency').'"');
|
DB::table('settings')->update(['default_currency' => trans('general.currency')]);
|
||||||
|
|
||||||
Schema::table('locations', function(Blueprint $table)
|
Schema::table('locations', function(Blueprint $table)
|
||||||
{
|
{
|
||||||
$table->string('currency',10)->nullable()->default(NULL);
|
$table->string('currency',10)->nullable()->default(NULL);
|
||||||
});
|
});
|
||||||
|
|
||||||
DB::update('UPDATE `'.DB::getTablePrefix().'locations` SET `currency`="'. trans('general.currency').'"');
|
DB::table('locations')->update(['currency' => trans('general.currency')]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ class MakeAssetAssignedToPolymorphic extends Migration
|
||||||
});
|
});
|
||||||
|
|
||||||
// Prior to this migration, asset's could only be assigned to users.
|
// Prior to this migration, asset's could only be assigned to users.
|
||||||
Asset::whereNotNull('assigned_to')->orWhere('assigned_to', '!=', '')->update(['assigned_type' => User::class]);
|
Asset::whereNotNull('assigned_to')->orWhere('assigned_to', '!=', null)->update(['assigned_type' => User::class]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue