kopia lustrzana https://github.com/nextcloud/social
Merge pull request #553 from nextcloud/bugfix/552/creation-can-be-empty
in case creation is emptypull/555/head
commit
aeaf2786c6
|
@ -32,9 +32,13 @@ namespace OCA\Social\Migration;
|
|||
|
||||
|
||||
use Closure;
|
||||
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
|
||||
use DateTime;
|
||||
use Doctrine\DBAL\Types\Type;
|
||||
use Exception;
|
||||
use OCA\Social\Db\CoreRequestBuilder;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
|
@ -1172,7 +1176,6 @@ class Version0002Date20190506000001 extends SimpleMigrationStep {
|
|||
$cursor = $qb->execute();
|
||||
while ($data = $cursor->fetch()) {
|
||||
$this->insertInto($dest, $fields, $data);
|
||||
|
||||
}
|
||||
|
||||
$cursor->closeCursor();
|
||||
|
@ -1183,11 +1186,20 @@ class Version0002Date20190506000001 extends SimpleMigrationStep {
|
|||
* @param string $table
|
||||
* @param array $fields
|
||||
* @param array $data
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
private function insertInto(string $table, array $fields, array $data) {
|
||||
$insert = $this->connection->getQueryBuilder();
|
||||
$insert->insert($table);
|
||||
|
||||
$datetimeFields = [
|
||||
'creation',
|
||||
'last',
|
||||
'caching',
|
||||
'published_time'
|
||||
];
|
||||
|
||||
foreach ($fields as $field) {
|
||||
$value = $this->get($field, $data, '');
|
||||
if ($field === 'id_prim'
|
||||
|
@ -1195,13 +1207,23 @@ class Version0002Date20190506000001 extends SimpleMigrationStep {
|
|||
&& $this->get('id', $data, '') !== '') {
|
||||
$value = hash('sha512', $this->get('id', $data, ''));
|
||||
}
|
||||
|
||||
$insert->setValue(
|
||||
$field, $insert->createNamedParameter($value)
|
||||
);
|
||||
|
||||
if (in_array($field, $datetimeFields) && $value === '') {
|
||||
$insert->setValue(
|
||||
$field,
|
||||
$insert->createNamedParameter(new DateTime('now'), IQueryBuilder::PARAM_DATE)
|
||||
);
|
||||
} else {
|
||||
$insert->setValue(
|
||||
$field, $insert->createNamedParameter($value)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$insert->execute();
|
||||
} catch (UniqueConstraintViolationException $e) {
|
||||
}
|
||||
|
||||
$insert->execute();
|
||||
}
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue