Merge pull request #553 from nextcloud/bugfix/552/creation-can-be-empty

in case creation is empty
pull/555/head
Maxence Lange 2019-05-31 02:03:40 -01:00 zatwierdzone przez GitHub
commit aeaf2786c6
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 29 dodań i 7 usunięć

Wyświetl plik

@ -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();
}