mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-26 19:11:07 +00:00
commit
6fb06904ec
282 changed files with 9836 additions and 1089 deletions
|
@ -9,6 +9,6 @@ indent_size = 4
|
|||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.css]
|
||||
[*.{js,css}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
|
|
@ -2,7 +2,11 @@
|
|||
"extends": "airbnb-base",
|
||||
"parser": "babel-eslint",
|
||||
"env": {
|
||||
"browser": true
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"globals": {
|
||||
"Routing": true
|
||||
},
|
||||
"rules": {
|
||||
"import/no-extraneous-dependencies": ["error", {"devDependencies": true, "optionalDependencies": true, "peerDependencies": true}]
|
||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -25,6 +25,8 @@ web/uploads/
|
|||
!web/bundles
|
||||
web/bundles/*
|
||||
!web/bundles/wallabagcore
|
||||
/web/assets/images/*
|
||||
!web/assets/images/.gitkeep
|
||||
|
||||
# Build
|
||||
/app/build
|
||||
|
@ -34,7 +36,6 @@ web/bundles/*
|
|||
/composer.phar
|
||||
|
||||
# Data for wallabag
|
||||
data/assets/*
|
||||
data/db/wallabag*.sqlite
|
||||
|
||||
# Docker container logs and data
|
||||
|
|
|
@ -57,7 +57,6 @@ before_script:
|
|||
- if [[ ! $PHP = hhvm* ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
|
||||
# xdebug isn't enable for PHP 7.1
|
||||
- if [[ ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
|
||||
- if [[ $PHP = 5.5 ]]; then composer require "phpunit/phpunit:4.*" --no-update; fi;
|
||||
- composer self-update --no-progress
|
||||
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
||||
|
||||
|
@ -72,9 +71,9 @@ before_install:
|
|||
script:
|
||||
- travis_wait bash composer install -o --no-interaction --no-progress --prefer-dist
|
||||
- ant prepare-$DB
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then phpunit -v ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then ./bin/simple-phpunit -v ; fi;
|
||||
- if [[ $CS_FIXER = run ]]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml app/Resources/CraueConfigBundle/translations -v ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml app/Resources/FOSUserBundle/translations -v ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml src/Wallabag/UserBundle/Resources/translations -v ; fi;
|
||||
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;
|
||||
|
|
3
Makefile
3
Makefile
|
@ -27,8 +27,7 @@ build: ## Run grunt
|
|||
@grunt
|
||||
|
||||
test: ## Launch wallabag testsuite
|
||||
@if [ ! -d "vendor/phpunit" ]; then composer install; fi
|
||||
@ant prepare && vendor/phpunit/phpunit/phpunit -v
|
||||
@ant prepare && bin/simple-phpunit -v
|
||||
|
||||
release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`).
|
||||
ifndef VERSION
|
||||
|
|
|
@ -29,8 +29,9 @@ class AppKernel extends Kernel
|
|||
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
|
||||
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
||||
new Craue\ConfigBundle\CraueConfigBundle(),
|
||||
new Lexik\Bundle\MaintenanceBundle\LexikMaintenanceBundle(),
|
||||
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
|
||||
new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
|
||||
new BD\GuzzleSiteAuthenticatorBundle\BDGuzzleSiteAuthenticatorBundle(),
|
||||
|
||||
// wallabag bundles
|
||||
new Wallabag\CoreBundle\WallabagCoreBundle(),
|
||||
|
|
|
@ -7,6 +7,9 @@ use Doctrine\DBAL\Schema\Schema;
|
|||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added foreign keys for account resetting
|
||||
*/
|
||||
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
|
@ -21,7 +24,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,13 +32,15 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
if ($this->connection->getDatabasePlatform()->getName() == 'postgresql') {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid UUID DEFAULT NULL');
|
||||
} else {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid LONGTEXT DEFAULT NULL');
|
||||
}
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
|
||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('share_public', '1', 'entry')");
|
||||
$this->skipIf($entryTable->hasColumn('uid'), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->addColumn('uid', 'string', [
|
||||
'notnull' => false,
|
||||
'length' => 23,
|
||||
]);
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('share_public', '1', 'entry')");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -43,9 +48,9 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
$entryTable->dropColumn('uid');
|
||||
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" DROP uuid');
|
||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'share_public'");
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_public'");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ use Doctrine\DBAL\Schema\Schema;
|
|||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added name field on wallabag_oauth2_clients
|
||||
*/
|
||||
class Version20160812120952 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
|
@ -21,7 +24,7 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
|||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,16 +32,10 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'sqlite':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
||||
break;
|
||||
case 'mysql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
|
||||
break;
|
||||
case 'postgresql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name text DEFAULT NULL');
|
||||
}
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
$this->skipIf($clientsTable->hasColumn('name'), 'It seems that you already played this migration.');
|
||||
|
||||
$clientsTable->addColumn('name', 'blob');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,8 +43,7 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' DROP COLUMN name');
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
$clientsTable->dropColumn('name');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ use Doctrine\DBAL\Schema\Schema;
|
|||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added settings for RabbitMQ and Redis imports
|
||||
*/
|
||||
class Version20160911214952 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
|
@ -21,7 +24,7 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
|||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,8 +32,25 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_redis\', \'0\', \'import\')');
|
||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_rabbitmq\', \'0\', \'import\')');
|
||||
$redis = $this->container
|
||||
->get('doctrine.orm.default_entity_manager')
|
||||
->getConnection()
|
||||
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_redis'");
|
||||
|
||||
if (false === $redis) {
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('import_with_redis', 0, 'import')");
|
||||
}
|
||||
|
||||
$rabbitmq = $this->container
|
||||
->get('doctrine.orm.default_entity_manager')
|
||||
->getConnection()
|
||||
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_rabbitmq'");
|
||||
|
||||
if (false === $rabbitmq) {
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('import_with_rabbitmq', 0, 'import')");
|
||||
}
|
||||
|
||||
$this->skipIf(false !== $rabbitmq && false !== $redis, 'It seems that you already played this migration.');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,5 +58,7 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_redis';");
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_rabbitmq';");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ use Doctrine\DBAL\Schema\Schema;
|
|||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added pocket_consumer_key field on wallabag_config
|
||||
*/
|
||||
class Version20160916201049 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
|
@ -21,7 +24,7 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
|||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,8 +32,12 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" ADD pocket_consumer_key VARCHAR(255) DEFAULT NULL');
|
||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'pocket_consumer_key';");
|
||||
$configTable = $schema->getTable($this->getTable('config'));
|
||||
|
||||
$this->skipIf($configTable->hasColumn('pocket_consumer_key'), 'It seems that you already played this migration.');
|
||||
|
||||
$configTable->addColumn('pocket_consumer_key', 'string', ['notnull' => false]);
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'pocket_consumer_key';");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,9 +45,8 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
|||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" DROP pocket_consumer_key');
|
||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||
$configTable = $schema->getTable($this->getTable('config'));
|
||||
$configTable->dropColumn('pocket_consumer_key');
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||
}
|
||||
}
|
||||
|
|
127
app/DoctrineMigrations/Version20161001072726.php
Normal file
127
app/DoctrineMigrations/Version20161001072726.php
Normal file
|
@ -0,0 +1,127 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\DBAL\Migrations\SkipMigrationException;
|
||||
|
||||
/**
|
||||
* Added pocket_consumer_key field on wallabag_config
|
||||
*/
|
||||
class Version20161001072726 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->skipIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
// remove all FK from entry_tag
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'mysql':
|
||||
$query = $this->connection->query("
|
||||
SELECT CONSTRAINT_NAME
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE TABLE_NAME = '".$this->getTable('entry_tag')."' AND CONSTRAINT_NAME LIKE 'FK_%'
|
||||
AND TABLE_SCHEMA = '".$this->connection->getDatabase()."'"
|
||||
);
|
||||
$query->execute();
|
||||
|
||||
foreach ($query->fetchAll() as $fk) {
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' DROP FOREIGN KEY '.$fk['CONSTRAINT_NAME']);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
// http://dba.stackexchange.com/questions/36979/retrieving-all-pk-and-fk
|
||||
$query = $this->connection->query("
|
||||
SELECT conrelid::regclass AS table_from
|
||||
,conname
|
||||
,pg_get_constraintdef(c.oid)
|
||||
FROM pg_constraint c
|
||||
JOIN pg_namespace n ON n.oid = c.connamespace
|
||||
WHERE contype = 'f'
|
||||
AND conrelid::regclass::text = '".$this->getTable('entry_tag')."'
|
||||
AND n.nspname = 'public';"
|
||||
);
|
||||
$query->execute();
|
||||
|
||||
foreach ($query->fetchAll() as $fk) {
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' DROP CONSTRAINT '.$fk['conname']);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES '.$this->getTable('entry').' (id) ON DELETE CASCADE');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES '.$this->getTable('tag').' (id) ON DELETE CASCADE');
|
||||
|
||||
// remove entry FK from annotation
|
||||
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'mysql':
|
||||
$query = $this->connection->query("
|
||||
SELECT CONSTRAINT_NAME
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE TABLE_NAME = '".$this->getTable('annotation')."'
|
||||
AND CONSTRAINT_NAME LIKE 'FK_%'
|
||||
AND COLUMN_NAME = 'entry_id'
|
||||
AND TABLE_SCHEMA = '".$this->connection->getDatabase()."'"
|
||||
);
|
||||
$query->execute();
|
||||
|
||||
foreach ($query->fetchAll() as $fk) {
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' DROP FOREIGN KEY '.$fk['CONSTRAINT_NAME']);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
// http://dba.stackexchange.com/questions/36979/retrieving-all-pk-and-fk
|
||||
$query = $this->connection->query("
|
||||
SELECT conrelid::regclass AS table_from
|
||||
,conname
|
||||
,pg_get_constraintdef(c.oid)
|
||||
FROM pg_constraint c
|
||||
JOIN pg_namespace n ON n.oid = c.connamespace
|
||||
WHERE contype = 'f'
|
||||
AND conrelid::regclass::text = '".$this->getTable('annotation')."'
|
||||
AND n.nspname = 'public'
|
||||
AND pg_get_constraintdef(c.oid) LIKE '%entry_id%';"
|
||||
);
|
||||
$query->execute();
|
||||
|
||||
foreach ($query->fetchAll() as $fk) {
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' DROP CONSTRAINT '.$fk['conname']);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES '.$this->getTable('entry').' (id) ON DELETE CASCADE');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
throw new SkipMigrationException('Too complex ...');
|
||||
}
|
||||
}
|
85
app/DoctrineMigrations/Version20161022134138.php
Normal file
85
app/DoctrineMigrations/Version20161022134138.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Converted database to utf8mb4 encoding (for MySQL only)
|
||||
*/
|
||||
class Version20161022134138 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
|
||||
|
||||
$this->addSql('ALTER DATABASE '.$this->connection->getParams()['dbname'].' CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;');
|
||||
|
||||
// convert field length for utf8mb4
|
||||
// http://stackoverflow.com/a/31474509/569101
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE salt salt VARCHAR(180) NOT NULL;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE password password VARCHAR(180) NOT NULL;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
|
||||
|
||||
$this->addSql('ALTER DATABASE '.$this->connection->getParams()['dbname'].' CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
|
||||
}
|
||||
}
|
67
app/DoctrineMigrations/Version20161024212538.php
Normal file
67
app/DoctrineMigrations/Version20161024212538.php
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added user_id column on oauth2_clients to prevent users to delete API clients from other users
|
||||
*/
|
||||
class Version20161024212538 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
private $constraintName = 'IDX_user_oauth_client';
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
|
||||
$this->skipIf($clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
|
||||
|
||||
$clientsTable->addColumn('user_id', 'integer', ['notnull' => false]);
|
||||
|
||||
$clientsTable->addForeignKeyConstraint(
|
||||
$this->getTable('user'),
|
||||
['user_id'],
|
||||
['id'],
|
||||
['onDelete' => 'CASCADE'],
|
||||
$this->constraintName
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
|
||||
$this->skipIf(!$clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
|
||||
|
||||
$clientsTable->dropColumn('user_id', 'integer');
|
||||
|
||||
if ($this->connection->getDatabasePlatform()->getName() != 'sqlite') {
|
||||
$clientsTable->removeForeignKey($this->constraintName);
|
||||
}
|
||||
}
|
||||
}
|
52
app/DoctrineMigrations/Version20161031132655.php
Normal file
52
app/DoctrineMigrations/Version20161031132655.php
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added the internal setting to enable/disable downloading pictures
|
||||
*/
|
||||
class Version20161031132655 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$images = $this->container
|
||||
->get('doctrine.orm.default_entity_manager')
|
||||
->getConnection()
|
||||
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'download_images_enabled'");
|
||||
|
||||
$this->skipIf(false !== $images, 'It seems that you already played this migration.');
|
||||
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('download_images_enabled', 0, 'misc')");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'download_images_enabled';");
|
||||
}
|
||||
}
|
53
app/DoctrineMigrations/Version20161104073720.php
Normal file
53
app/DoctrineMigrations/Version20161104073720.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added created_at index on entry table
|
||||
*/
|
||||
class Version20161104073720 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
private $indexName = 'IDX_entry_created_at';
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
$this->skipIf($entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->addIndex(['created_at'], $this->indexName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
$this->skipIf(false === $entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->dropIndex($this->indexName);
|
||||
}
|
||||
}
|
56
app/DoctrineMigrations/Version20161106113822.php
Normal file
56
app/DoctrineMigrations/Version20161106113822.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added action_mark_as_read field on config table
|
||||
*/
|
||||
class Version20161106113822 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$configTable = $schema->getTable($this->getTable('config'));
|
||||
|
||||
$this->skipIf($configTable->hasColumn('action_mark_as_read'), 'It seems that you already played this migration.');
|
||||
|
||||
$configTable->addColumn('action_mark_as_read', 'integer', [
|
||||
'default' => 0,
|
||||
'notnull' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$configTable = $schema->getTable($this->getTable('config'));
|
||||
|
||||
$this->skipIf(!$configTable->hasColumn('action_mark_as_read'), 'It seems that you already played this migration.');
|
||||
|
||||
$configTable->dropColumn('action_mark_as_read');
|
||||
}
|
||||
}
|
64
app/DoctrineMigrations/Version20161117071626.php
Normal file
64
app/DoctrineMigrations/Version20161117071626.php
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added the internal setting to share articles to unmark.it
|
||||
*/
|
||||
class Version20161117071626 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$share = $this->container
|
||||
->get('doctrine.orm.default_entity_manager')
|
||||
->getConnection()
|
||||
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_unmark'");
|
||||
|
||||
if (false === $share) {
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('share_unmark', 0, 'entry')");
|
||||
}
|
||||
|
||||
$unmark = $this->container
|
||||
->get('doctrine.orm.default_entity_manager')
|
||||
->getConnection()
|
||||
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'unmark_url'");
|
||||
|
||||
if (false === $unmark) {
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')");
|
||||
}
|
||||
|
||||
$this->skipIf(false !== $share && false !== $unmark, 'It seems that you already played this migration.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_unmark';");
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'unmark_url';");
|
||||
}
|
||||
}
|
56
app/DoctrineMigrations/Version20161118134328.php
Normal file
56
app/DoctrineMigrations/Version20161118134328.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Add http_status in `entry_table`.
|
||||
*/
|
||||
class Version20161118134328 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
|
||||
$this->skipIf($entryTable->hasColumn('http_status'), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->addColumn('http_status', 'string', [
|
||||
'length' => 3,
|
||||
'notnull' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
|
||||
$this->skipIf(!$entryTable->hasColumn('http_status'), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->dropColumn('http_status');
|
||||
}
|
||||
}
|
52
app/DoctrineMigrations/Version20161122144743.php
Normal file
52
app/DoctrineMigrations/Version20161122144743.php
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Add the restricted_access internal setting for articles with paywall.
|
||||
*/
|
||||
class Version20161122144743 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$access = $this->container
|
||||
->get('doctrine.orm.default_entity_manager')
|
||||
->getConnection()
|
||||
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'restricted_access'");
|
||||
|
||||
$this->skipIf(false !== $access, 'It seems that you already played this migration.');
|
||||
|
||||
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('restricted_access', 0, 'entry')");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'restricted_access';");
|
||||
}
|
||||
}
|
63
app/DoctrineMigrations/Version20161122203647.php
Normal file
63
app/DoctrineMigrations/Version20161122203647.php
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Methods and properties removed from `FOS\UserBundle\Model\User`.
|
||||
*
|
||||
* - `$expired`
|
||||
* - `$credentialsExpired`
|
||||
* - `setExpired()` (use `setExpiresAt(\DateTime::now()` instead)
|
||||
* - `setCredentialsExpired()` (use `setCredentialsExpireAt(\DateTime::now()` instead)
|
||||
*
|
||||
* You need to drop the fields `expired` and `credentials_expired` from your database
|
||||
* schema, because they aren't mapped anymore.
|
||||
*/
|
||||
class Version20161122203647 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$userTable = $schema->getTable($this->getTable('user'));
|
||||
|
||||
$this->skipIf(false === $userTable->hasColumn('expired') || false === $userTable->hasColumn('credentials_expired'), 'It seems that you already played this migration.');
|
||||
|
||||
$userTable->dropColumn('expired');
|
||||
$userTable->dropColumn('credentials_expired');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$userTable = $schema->getTable($this->getTable('user'));
|
||||
|
||||
$this->skipIf(true === $userTable->hasColumn('expired') || true === $userTable->hasColumn('credentials_expired'), 'It seems that you already played this migration.');
|
||||
|
||||
$userTable->addColumn('expired', 'smallint', ['notnull' => false]);
|
||||
$userTable->addColumn('credentials_expired', 'smallint', ['notnull' => false]);
|
||||
}
|
||||
}
|
49
app/DoctrineMigrations/Version20161128084725.php
Normal file
49
app/DoctrineMigrations/Version20161128084725.php
Normal file
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added list_mode in user config.
|
||||
*/
|
||||
class Version20161128084725 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$configTable = $schema->getTable($this->getTable('config'));
|
||||
$this->skipIf($configTable->hasColumn('list_mode'), 'It seems that you already played this migration.');
|
||||
|
||||
$configTable->addColumn('list_mode', 'integer', ['notnull' => false]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$configTable = $schema->getTable($this->getTable('config'));
|
||||
$configTable->dropColumn('list_mode');
|
||||
}
|
||||
}
|
61
app/DoctrineMigrations/Version20161128131503.php
Normal file
61
app/DoctrineMigrations/Version20161128131503.php
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Removed locked, credentials_expire_at and expires_at.
|
||||
*/
|
||||
class Version20161128131503 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
private $fields = [
|
||||
'locked' => 'smallint',
|
||||
'credentials_expire_at' => 'datetime',
|
||||
'expires_at' => 'datetime',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$userTable = $schema->getTable($this->getTable('user'));
|
||||
|
||||
foreach ($this->fields as $field => $type) {
|
||||
$this->skipIf(!$userTable->hasColumn($field), 'It seems that you already played this migration.');
|
||||
$userTable->dropColumn($field);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$userTable = $schema->getTable($this->getTable('user'));
|
||||
|
||||
foreach ($this->fields as $field => $type) {
|
||||
$this->skipIf($userTable->hasColumn($field), 'It seems that you already played this migration.');
|
||||
$userTable->addColumn($field, $type, ['notnull' => false]);
|
||||
}
|
||||
}
|
||||
}
|
75
app/DoctrineMigrations/Version20161214094402.php
Normal file
75
app/DoctrineMigrations/Version20161214094402.php
Normal file
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Renamed uuid to uid in entry table
|
||||
*/
|
||||
class Version20161214094402 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
|
||||
$this->skipIf($entryTable->hasColumn('uid'), 'It seems that you already played this migration.');
|
||||
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'sqlite':
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM '.$this->getTable('entry'));
|
||||
$this->addSql('DROP TABLE '.$this->getTable('entry'));
|
||||
$this->addSql('CREATE TABLE '.$this->getTable('entry').' (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT "0", PRIMARY KEY(id));');
|
||||
$this->addSql('INSERT INTO '.$this->getTable('entry').' (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry;');
|
||||
$this->addSql('DROP TABLE __temp__wallabag_entry');
|
||||
break;
|
||||
case 'mysql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE uuid uid VARCHAR(23)');
|
||||
break;
|
||||
case 'postgresql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' RENAME uuid TO uid');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
|
||||
$this->skipIf($entryTable->hasColumn('uuid'), 'It seems that you already played this migration.');
|
||||
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'sqlite':
|
||||
throw new SkipMigrationException('Too complex ...');
|
||||
break;
|
||||
case 'mysql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE uid uuid VARCHAR(23)');
|
||||
break;
|
||||
case 'postgresql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('entry').' RENAME uid TO uuid');
|
||||
}
|
||||
}
|
||||
}
|
53
app/DoctrineMigrations/Version20161214094403.php
Normal file
53
app/DoctrineMigrations/Version20161214094403.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Added index on wallabag_entry.uid
|
||||
*/
|
||||
class Version20161214094403 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
private $indexName = 'IDX_entry_uid';
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
$this->skipIf($entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->addIndex(['uid'], $this->indexName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
$this->skipIf(false === $entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
|
||||
|
||||
$entryTable->dropIndex($this->indexName);
|
||||
}
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Download billeder på din server
|
||||
carrot: Aktiver deling til Carrot
|
||||
diaspora_url: Diaspora URL, hvis tjenesten er aktiv
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Aktiver deling til Diaspora
|
|||
share_mail: Aktiver deling med email
|
||||
share_shaarli: Aktiver deling gennem Shaarli
|
||||
share_twitter: Aktiver deling gennem Twitter
|
||||
share_unmark: Aktiver deling gennem Unmark.it
|
||||
show_printlink: Vis et link til print-indhold
|
||||
wallabag_support_url: Support-URL for wallabag
|
||||
wallabag_url: URL for *sin* wallabag-installation
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Aktiver Piwik
|
|||
demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
|
||||
demo_mode_username: "Demobruger"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Bilder auf den Server herunterladen
|
||||
carrot: Teilen zu Carrot aktivieren
|
||||
diaspora_url: Diaspora-URL, sofern der Service aktiviert ist
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Teilen zu Diaspora aktiveren
|
|||
share_mail: Teilen via E-Mail aktiveren
|
||||
share_shaarli: Teilen zu Shaarli aktiveren
|
||||
share_twitter: Teilen zu Twitter aktiveren
|
||||
share_unmark: Teilen zu Unmark.it aktiveren
|
||||
show_printlink: Link anzeigen, um den Inhalt auszudrucken
|
||||
wallabag_support_url: Support-URL für wallabag
|
||||
wallabag_url: URL von *deiner* wallabag-Instanz
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Piwik aktivieren
|
|||
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
||||
demo_mode_username: "Test-Benutzer"
|
||||
share_public: Erlaube eine öffentliche URL für Einträge
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
settings_changed: Configuration updated
|
||||
download_pictures: Download pictures on your server
|
||||
carrot: Enable share to Carrot
|
||||
diaspora_url: Diaspora URL, if the service is enabled
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Enable share to Diaspora
|
|||
share_mail: Enable share by email
|
||||
share_shaarli: Enable share to Shaarli
|
||||
share_twitter: Enable share to Twitter
|
||||
share_unmark: Enable share to Unmark.it
|
||||
show_printlink: Display a link to print content
|
||||
wallabag_support_url: Support URL for wallabag
|
||||
wallabag_url: URL of *your* wallabag instance
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Enable Piwik
|
|||
demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
demo_mode_username: "Demo user"
|
||||
share_public: Allow public url for entries
|
||||
download_images_enabled: Download images locally
|
||||
restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Descargar imágenes
|
||||
carrot: Activar compartir con Carrot
|
||||
diaspora_url: Diaspora URL, si el servicio está activado
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Activar compartir con Diaspora
|
|||
share_mail: Activar compartir con email
|
||||
share_shaarli: Activar compartir con Shaarli
|
||||
share_twitter: Activar compartir con Twitter
|
||||
share_unmark: Activar compartir con Unmark.it
|
||||
show_printlink: Mostrar un enlace para imprimir contenido
|
||||
wallabag_support_url: URL de soporte de wallabag
|
||||
wallabag_url: URL de *tu* instancia de wallabag
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Activar Piwik
|
|||
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
|
||||
demo_mode_username: "Nombre de usuario demo"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: تصاویر را در کارگزار خودتان باربگیرید
|
||||
carrot: فعالسازی همرسانی به Carrot
|
||||
diaspora_url: نشانی Diaspora، اگر فعال بود
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: فعالسازی همرسانی به Diaspora
|
|||
share_mail: فعالسازی همرسانی با ایمیل
|
||||
share_shaarli: فعالسازی همرسانی به Shaarli
|
||||
share_twitter: فعالسازی همرسانی به Twitter
|
||||
share_unmark: فعالسازی همرسانی به Unmark.it
|
||||
show_printlink: نمایش پیوندی برای چاپ مطلب
|
||||
wallabag_support_url: نشانی صفحهٔ پشتیبانی wallabag
|
||||
wallabag_url: نشانی صفحهٔ wallabag *شما*
|
||||
|
@ -29,3 +31,5 @@ modify_settings: "اعمال"
|
|||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
# demo_mode_username: "Demo user"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
settings_changed: Configuration mise à jour
|
||||
download_pictures: Télécharger les images sur le serveur
|
||||
carrot: Activer le partage vers Carrot
|
||||
diaspora_url: URL de Diaspora, si le service Diaspora est activé
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Activer le partage vers Diaspora
|
|||
share_mail: Activer le partage par email
|
||||
share_shaarli: Activer le partage vers Shaarli
|
||||
share_twitter: Activer le partage vers Twitter
|
||||
share_unmark: Activer le partage vers Unmark.it
|
||||
show_printlink: Afficher un lien pour imprimer
|
||||
wallabag_support_url: URL de support de wallabag
|
||||
wallabag_url: URL de *votre* instance de wallabag
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Activer Piwik
|
|||
demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)"
|
||||
demo_mode_username: "Utilisateur de la démo"
|
||||
share_public: Autoriser une URL publique pour les articles
|
||||
download_images_enabled: Télécharger les images en local
|
||||
restricted_access: Activer l'authentification pour les articles derrière un paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Scarica le immagini sul tuo server
|
||||
carrot: Abilita la condivisione con Carrot
|
||||
diaspora_url: Diaspora URL, se il servizio è abilitato
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Abilita la condivisione con Diaspora
|
|||
share_mail: Abilita la condivisione per email
|
||||
share_shaarli: Abilita la condivisione con Shaarli
|
||||
share_twitter: Abilita la condivisione con Twitter
|
||||
share_unmark: Abilita la condivisione con Unmark.it
|
||||
show_printlink: Mostra un collegamento per stampare il contenuto
|
||||
wallabag_support_url: URL di supporto per wallabag
|
||||
wallabag_url: URL della *tua* installazione di wallabag
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Abilita Piwik
|
|||
demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)"
|
||||
demo_mode_username: "Utente Demo"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Telecargar los imatges sul servidor
|
||||
carrot: Activar lo partatge cap a Carrot
|
||||
diaspora_url: URL de Diaspora, se lo servici Diaspora es activat
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Activar lo partatge cap a Diaspora
|
|||
share_mail: Activar lo partatge per corrièl
|
||||
share_shaarli: Activar lo partatge cap a Shaarli
|
||||
share_twitter: Activar lo partatge cap a Twitter
|
||||
share_unmark: Activar lo partatge cap a Unmark.it
|
||||
show_printlink: Afichar un ligam per imprimir
|
||||
wallabag_support_url: URL d'assisténcia de wallabag
|
||||
wallabag_url: URL de *vòstra* instància de wallabag
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Activar Piwik
|
|||
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
|
||||
demo_mode_username: "Utilizaire de la demostracion"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Pobierz obrazy na swój serwer
|
||||
carrot: Włącz udostępnianie dla Carrot
|
||||
diaspora_url: Adres URL Diaspora, jeżeli usługa jest włączona
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Włącz udostępnianie dla Diaspora
|
|||
share_mail: Włącz udostępnianie przez email
|
||||
share_shaarli: Włącz udostępnianie dla Shaarli
|
||||
share_twitter: Włącz udostępnianie dla Twitter
|
||||
share_unmark: Włącz udostępnianie dla Unmark.it
|
||||
show_printlink: Pokaż link do wydrukowania zawartości
|
||||
wallabag_support_url: Adres URL wsparcia dla wallabag
|
||||
wallabag_url: Adres *twojej* instacji wallabag
|
||||
|
@ -29,3 +31,5 @@ piwik_enabled: Włacz Piwik
|
|||
demo_mode_enabled: "Włacz tryb demo? (używany wyłącznie dla publicznej demonstracji Wallabag)"
|
||||
demo_mode_username: "Użytkownik Demonstracyjny"
|
||||
share_public: Zezwalaj na publiczny adres url dla wpisow
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Download imagens no seu servidor
|
||||
carrot: Habilitar compartilhamento para o Carrot
|
||||
diaspora_url: URL Diaspora, se o serviço está habilitado
|
||||
|
@ -8,12 +9,14 @@ export_csv: Habilita exportação para CSV
|
|||
export_json: Habilita exportação para JSON
|
||||
export_txt: Habilita exportação para TXT
|
||||
export_xml: Habilita exportação para XML
|
||||
pocket_consumer_key: Chave de consumidor do Pocket para importar conteúdo (https://getpocket.com/developer/docs/authentication)
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
shaarli_url: URL Shaarli, se o serviço está habilitado
|
||||
share_diaspora: Habilitar compartilhamento para o Diaspora
|
||||
share_mail: Habilitar compartilhamento por e-mail
|
||||
share_shaarli: Habilitar compartilhamento para o Shaarli
|
||||
share_twitter: Habilitar compartilhamento para o Twitter
|
||||
share_unmark: Habilitar compartilhamento para o Unmark.it
|
||||
show_printlink: Mostrar um link para imprimir o conteúdo
|
||||
wallabag_support_url: URL de Suporte do wallabag
|
||||
wallabag_url: URL de *sua* instância do wallabag
|
||||
|
@ -27,3 +30,6 @@ piwik_site_id: ID de seu website Piwik
|
|||
piwik_enabled: Habilitar Piwik
|
||||
demo_mode_enabled: "Habilitar modo demo? (somente usado para o demo público do wallabag)"
|
||||
demo_mode_username: "Usuário demo"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
download_pictures: Descarcă poze pe server
|
||||
carrot: Permite share către Carrot
|
||||
diaspora_url: Diaspora URL, dacă serviciul este permis
|
||||
|
@ -15,6 +16,7 @@ share_diaspora: Permite share către Diaspora
|
|||
share_mail: Permite share prin email
|
||||
share_shaarli: Permite share către Shaarli
|
||||
share_twitter: Permite share către Twitter
|
||||
share_unmark: Permite share către Unmark.it
|
||||
show_printlink: Afișează un link pentru a printa content-ul
|
||||
wallabag_support_url: URL-ul de suport pentru wallabag
|
||||
wallabag_url: URL-ul instanței tale wallabag
|
||||
|
@ -29,3 +31,5 @@ modify_settings: "aplică"
|
|||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
# demo_mode_username: "Demo user"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# settings_changed: Configuration updated
|
||||
# download_pictures: Download pictures on your server
|
||||
# carrot: Enable share to Carrot
|
||||
# diaspora_url: Diaspora URL, if the service is enabled
|
||||
|
@ -15,6 +16,7 @@
|
|||
# share_mail: Enable share by email
|
||||
# share_shaarli: Enable share to Shaarli
|
||||
# share_twitter: Enable share to Twitter
|
||||
# share_unmark: Enable share to Unmark.it
|
||||
# show_printlink: Display a link to print content
|
||||
# wallabag_support_url: Support URL for wallabag
|
||||
# wallabag_url: URL of *your* wallabag instance
|
||||
|
@ -29,3 +31,5 @@
|
|||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
# demo_mode_username: "Demo user"
|
||||
# share_public: Allow public url for entries
|
||||
# download_images_enabled: Download images locally
|
||||
# restricted_access: Enable authentication for websites with paywall
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Log ind"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Indtast din emailadresse nedenfor, så sender vi dig instrukser til at nulstille din adgangskode."
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Anmelden"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Tippe deine E-Mail-Adresse unten ein und wir senden dir die Anweisungen, wie du dein Kennwort zurücksetzen kannst."
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Logearse"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Introduzca su dirección de email y le enviaremos las instrucciones para resetear su contraseña."
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Se connecter"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Renseignez votre adresse courriel, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Se connectar"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Logowanie"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Wpisz poniżej swój adres email, abyśmy mogli wysłać ci instrukcję resetowania hasła."
|
|
@ -1,2 +0,0 @@
|
|||
Login: "Login"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Digite seu endereço de e-mail para enviarmos as instruções de recupeção de sua senha."
|
Binary file not shown.
After Width: | Height: | Size: 926 B |
BIN
app/Resources/static/themes/_global/img/list.png
Executable file
BIN
app/Resources/static/themes/_global/img/list.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 201 B |
BIN
app/Resources/static/themes/_global/img/table.png
Executable file
BIN
app/Resources/static/themes/_global/img/table.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 229 B |
|
@ -1,4 +1,3 @@
|
|||
|
||||
top['bookmarklet-url@wallabag.org'] =
|
||||
'<!DOCTYPE html><html><head><title>bag it!</title>' +
|
||||
'<link rel="icon" href="tpl/img/favicon.ico" />' +
|
||||
|
|
15
app/Resources/static/themes/_global/js/shortcuts/main.js
Normal file
15
app/Resources/static/themes/_global/js/shortcuts/main.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import Mousetrap from 'mousetrap';
|
||||
|
||||
/** Shortcuts **/
|
||||
|
||||
/* Go to */
|
||||
Mousetrap.bind('g u', () => { window.location.href = Routing.generate('homepage'); });
|
||||
Mousetrap.bind('g s', () => { window.location.href = Routing.generate('starred'); });
|
||||
Mousetrap.bind('g r', () => { window.location.href = Routing.generate('archive'); });
|
||||
Mousetrap.bind('g a', () => { window.location.href = Routing.generate('all'); });
|
||||
Mousetrap.bind('g t', () => { window.location.href = Routing.generate('tag'); });
|
||||
Mousetrap.bind('g c', () => { window.location.href = Routing.generate('config'); });
|
||||
Mousetrap.bind('g i', () => { window.location.href = Routing.generate('import'); });
|
||||
Mousetrap.bind('g d', () => { window.location.href = Routing.generate('developer'); });
|
||||
Mousetrap.bind('?', () => { window.location.href = Routing.generate('howto'); });
|
||||
Mousetrap.bind('g l', () => { window.location.href = Routing.generate('fos_user_security_logout'); });
|
|
@ -1,4 +1,9 @@
|
|||
const $ = require('jquery');
|
||||
import $ from 'jquery';
|
||||
import './shortcuts/main';
|
||||
import './shortcuts/entry';
|
||||
|
||||
/* Allows inline call qr-code call */
|
||||
import jrQrcode from 'jr-qrcode'; // eslint-disable-line
|
||||
|
||||
function supportsLocalStorage() {
|
||||
try {
|
||||
|
@ -30,7 +35,7 @@ function initFilters() {
|
|||
// no display if filters not available
|
||||
if ($('div').is('#filters')) {
|
||||
$('#button_filters').show();
|
||||
$('.button-collapse-right').sideNav({ edge: 'right' });
|
||||
$('.js-filters-action').sideNav({ edge: 'right' });
|
||||
$('#clear_form_filters').on('click', () => {
|
||||
$('#filters input').val('');
|
||||
$('#filters :checked').removeAttr('checked');
|
||||
|
@ -43,7 +48,7 @@ function initExport() {
|
|||
// no display if export not available
|
||||
if ($('div').is('#export')) {
|
||||
$('#button_export').show();
|
||||
$('.button-collapse-right').sideNav({ edge: 'right' });
|
||||
$('.js-export-action').sideNav({ edge: 'right' });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -297,18 +297,14 @@ h2::after {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
#listmode a:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#listmode.tablemode {
|
||||
background-image: url("../img/baggy/table.png");
|
||||
background-image: url("../../_global/img/table.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom;
|
||||
}
|
||||
|
||||
#listmode.listmode {
|
||||
background-image: url("../img/baggy/list.png");
|
||||
background-image: url("../../_global/img/list.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom;
|
||||
}
|
||||
|
@ -352,9 +348,9 @@ footer a {
|
|||
letter-spacing: -5px;
|
||||
}
|
||||
|
||||
.listmode .entry {
|
||||
width: 100% !important;
|
||||
margin-left: 0 !important;
|
||||
.listmode.entry {
|
||||
width: 100%;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.card-entry-labels {
|
||||
|
@ -588,6 +584,7 @@ div.pagination ul {
|
|||
text-align: left;
|
||||
font-style: italic;
|
||||
color: #999;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
div.pagination ul > * {
|
||||
|
@ -620,6 +617,10 @@ div.pagination ul .current {
|
|||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
2.1 = "save a link" related styles
|
||||
========================================================================== */
|
||||
|
@ -936,6 +937,11 @@ a.add-to-wallabag-link-after::after {
|
|||
background-image: url("../../_global/img/icons/diaspora-icon--black.png");
|
||||
}
|
||||
|
||||
/* Unmark.it */
|
||||
.icon-image--unmark {
|
||||
background-image: url("../../_global/img/icons/unmark-icon--black.png");
|
||||
}
|
||||
|
||||
/* shaarli */
|
||||
.icon-image--shaarli {
|
||||
background-image: url("../../_global/img/icons/shaarli.png");
|
||||
|
|
|
@ -5,4 +5,4 @@ function extractLast(term) {
|
|||
return split(term).pop();
|
||||
}
|
||||
|
||||
export { split, extractLast };
|
||||
export default { split, extractLast };
|
||||
|
|
|
@ -1,11 +1,26 @@
|
|||
/* jQuery */
|
||||
import $ from 'jquery';
|
||||
|
||||
/* eslint-disable no-unused-vars */
|
||||
/* jquery has default scope */
|
||||
import cookie from 'jquery.cookie';
|
||||
import ui from 'jquery-ui-browserify';
|
||||
/* eslint-enable no-unused-vars */
|
||||
|
||||
/* Annotations */
|
||||
import annotator from 'annotator';
|
||||
|
||||
/* Shortcuts */
|
||||
import './shortcuts/main';
|
||||
import './shortcuts/entry';
|
||||
import '../../_global/js/shortcuts/main';
|
||||
import '../../_global/js/shortcuts/entry';
|
||||
|
||||
/* Tools */
|
||||
import { savePercent, retrievePercent } from '../../_global/js/tools';
|
||||
import { toggleSaveLinkForm } from './uiTools';
|
||||
|
||||
const $ = global.jquery = require('jquery');
|
||||
require('jquery.cookie');
|
||||
require('jquery-ui-browserify');
|
||||
const annotator = require('annotator');
|
||||
import toggleSaveLinkForm from './uiTools';
|
||||
|
||||
global.jquery = $;
|
||||
|
||||
$.fn.ready(() => {
|
||||
const $listmode = $('#listmode');
|
||||
|
|
26
app/Resources/static/themes/baggy/js/shortcuts/entry.js
Normal file
26
app/Resources/static/themes/baggy/js/shortcuts/entry.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
import Mousetrap from 'mousetrap';
|
||||
import $ from 'jquery';
|
||||
|
||||
$(document).ready(() => {
|
||||
if ($('#article').length > 0) {
|
||||
/* Article view */
|
||||
Mousetrap.bind('o', () => {
|
||||
$('div#article_toolbar ul.links a.original')[0].click();
|
||||
});
|
||||
|
||||
/* mark as favorite */
|
||||
Mousetrap.bind('f', () => {
|
||||
$('div#article_toolbar ul.links a.favorite')[0].click();
|
||||
});
|
||||
|
||||
/* mark as read */
|
||||
Mousetrap.bind('a', () => {
|
||||
$('div#article_toolbar ul.links a.markasread')[0].click();
|
||||
});
|
||||
|
||||
/* delete */
|
||||
Mousetrap.bind('del', () => {
|
||||
$('div#article_toolbar ul.links a.delete')[0].click();
|
||||
});
|
||||
}
|
||||
});
|
7
app/Resources/static/themes/baggy/js/shortcuts/main.js
Normal file
7
app/Resources/static/themes/baggy/js/shortcuts/main.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
$(document).ready(() => {
|
||||
Mousetrap.bind('s', () => {
|
||||
$('#search').trigger('click');
|
||||
$('#search_entry_term').focus();
|
||||
return false;
|
||||
});
|
||||
});
|
|
@ -1,4 +1,4 @@
|
|||
const $ = require('jquery');
|
||||
import $ from 'jquery';
|
||||
|
||||
function toggleSaveLinkForm(url, event) {
|
||||
$('#add-link-result').empty();
|
||||
|
@ -32,4 +32,4 @@ function toggleSaveLinkForm(url, event) {
|
|||
plainUrl.focus();
|
||||
}
|
||||
|
||||
export { toggleSaveLinkForm };
|
||||
export default toggleSaveLinkForm;
|
||||
|
|
|
@ -150,6 +150,11 @@
|
|||
background-image: url("../../_global/img/icons/diaspora-icon--black.png");
|
||||
}
|
||||
|
||||
/* Unmark.it */
|
||||
.icon-image--unmark {
|
||||
background-image: url("../../_global/img/icons/unmark-icon--black.png");
|
||||
}
|
||||
|
||||
/* Shaarli */
|
||||
.icon-image--shaarli {
|
||||
background-image: url("../../_global/img/icons/shaarli.png");
|
||||
|
@ -159,7 +164,7 @@ body {
|
|||
display: flex;
|
||||
min-height: 100vh;
|
||||
flex-direction: column;
|
||||
background: #f0f0f0;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
body.login main {
|
||||
|
@ -189,7 +194,6 @@ main,
|
|||
|
||||
.results {
|
||||
height: 1em;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.results .nb-results,
|
||||
|
@ -198,6 +202,14 @@ main,
|
|||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.results .nb-results {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.results a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
float: right;
|
||||
}
|
||||
|
@ -271,6 +283,16 @@ nav input {
|
|||
color: #aaa;
|
||||
}
|
||||
|
||||
nav {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.nav-wrapper {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.nav-wrapper .button-collapse {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
@ -279,8 +301,10 @@ nav input {
|
|||
display: none;
|
||||
}
|
||||
|
||||
.nav-panels {
|
||||
overflow: hidden;
|
||||
.nav-panel-buttom {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.nav-panel-buttom li {
|
||||
|
@ -317,11 +341,13 @@ nav input {
|
|||
color: #444;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add label {
|
||||
.input-field.nav-panel-add label,
|
||||
.input-field.nav-panel-search label {
|
||||
left: 1rem;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add .close {
|
||||
.input-field.nav-panel-add .close,
|
||||
.input-field.nav-panel-search .close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 1rem;
|
||||
|
@ -340,8 +366,10 @@ nav input {
|
|||
}
|
||||
|
||||
.input-field.nav-panel-add,
|
||||
.input-field.nav-panel-add form {
|
||||
height: 100%;
|
||||
.input-field.nav-panel-add form,
|
||||
.input-field.nav-panel-search,
|
||||
.input-field.nav-panel-search form {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
|
@ -411,7 +439,6 @@ nav ul a:hover {
|
|||
.side-nav.fixed.right-aligned {
|
||||
right: -250px;
|
||||
left: auto !important;
|
||||
overflow-y: visible;
|
||||
}
|
||||
|
||||
#filters div.with-checkbox {
|
||||
|
@ -535,6 +562,18 @@ a.original {
|
|||
line-height: 24px;
|
||||
}
|
||||
|
||||
.card .card-action ul.tools li a.tool {
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.card-stacked:hover ul.tools-list {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.card-stacked ul.tools-list {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.card .card-action a {
|
||||
color: #fff;
|
||||
margin: 0;
|
||||
|
@ -587,7 +626,55 @@ a.original {
|
|||
#article {
|
||||
font-size: 20px;
|
||||
margin: 0 auto;
|
||||
max-width: 40em;
|
||||
max-width: 45em;
|
||||
}
|
||||
|
||||
#article article {
|
||||
color: #424242;
|
||||
font-size: 18px;
|
||||
line-height: 1.7em;
|
||||
}
|
||||
|
||||
#article article h1,
|
||||
#article article h2,
|
||||
#article article h3,
|
||||
#article article h4,
|
||||
#article article h5,
|
||||
#article article h6 {
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
#article article h1 strong,
|
||||
#article article h2 strong,
|
||||
#article article h3 strong,
|
||||
#article article h4 strong,
|
||||
#article article h5 strong,
|
||||
#article article h6 strong {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#article article h6 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
#article article h5 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
#article article h4 {
|
||||
font-size: 1.9rem;
|
||||
}
|
||||
|
||||
#article article h3 {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
#article article h2 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
#article article h1 {
|
||||
font-size: 2.7rem;
|
||||
}
|
||||
|
||||
#article img,
|
||||
|
@ -596,6 +683,46 @@ a.original {
|
|||
height: auto;
|
||||
}
|
||||
|
||||
#article article a {
|
||||
border-bottom: 1px dotted #03a9f4;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#article article a:hover {
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
#article article ul {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
#article article ul,
|
||||
#article article ul li {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
#article article blockquote {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#article article strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#article article pre {
|
||||
box-sizing: border-box;
|
||||
margin: 0 0 1.75em;
|
||||
border: #e3f2fd 1px solid;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
font-family: monospace;
|
||||
font-size: 0.8em;
|
||||
white-space: pre;
|
||||
overflow: auto;
|
||||
background: #f5f5f5;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#article > header > h1 {
|
||||
font-size: 2em;
|
||||
margin: 2.1rem 0 0.68rem;
|
||||
|
@ -691,6 +818,14 @@ article aside .tools li {
|
|||
width: auto;
|
||||
}
|
||||
|
||||
.nav-panels .action {
|
||||
padding-right: 0.75rem;
|
||||
}
|
||||
|
||||
.nav-panel-buttom {
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#article {
|
||||
max-width: 35em;
|
||||
margin-left: auto;
|
||||
|
@ -727,11 +862,13 @@ article aside .tools li {
|
|||
.pagination li.next {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 400px) {
|
||||
.nav-panel-buttom {
|
||||
float: right;
|
||||
.drag-target + .drag-target {
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
.drag-target + .drag-target + .drag-target {
|
||||
top: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,21 @@
|
|||
/* jQuery */
|
||||
import $ from 'jquery';
|
||||
|
||||
/* Annotations */
|
||||
import annotator from 'annotator';
|
||||
|
||||
/* Tools */
|
||||
import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools';
|
||||
|
||||
const $ = require('jquery');
|
||||
/* Import shortcuts */
|
||||
import './shortcuts/main';
|
||||
import './shortcuts/entry';
|
||||
import '../../_global/js/shortcuts/main';
|
||||
import '../../_global/js/shortcuts/entry';
|
||||
|
||||
require('materialize'); // eslint-disable-line
|
||||
|
||||
global.jQuery = $;
|
||||
require('materialize'); // eslint-disable-line
|
||||
const annotator = require('annotator');
|
||||
|
||||
$(document).ready(() => {
|
||||
// sideNav
|
||||
|
@ -44,7 +55,7 @@ $(document).ready(() => {
|
|||
$('.nav-panels .action').hide(100);
|
||||
$('.nav-panel-menu').addClass('hidden');
|
||||
$('.nav-panels').css('background', 'white');
|
||||
$('#searchfield').focus();
|
||||
$('#search_entry_term').focus();
|
||||
return false;
|
||||
});
|
||||
$('.close').on('click', () => {
|
||||
|
|
26
app/Resources/static/themes/material/js/shortcuts/entry.js
Normal file
26
app/Resources/static/themes/material/js/shortcuts/entry.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
import Mousetrap from 'mousetrap';
|
||||
import $ from 'jquery';
|
||||
|
||||
$(document).ready(() => {
|
||||
if ($('#article').length > 0) {
|
||||
/* open original article */
|
||||
Mousetrap.bind('o', () => {
|
||||
$('ul.side-nav a.original i')[0].click();
|
||||
});
|
||||
|
||||
/* mark as favorite */
|
||||
Mousetrap.bind('f', () => {
|
||||
$('ul.side-nav a.favorite i')[0].click();
|
||||
});
|
||||
|
||||
/* mark as read */
|
||||
Mousetrap.bind('a', () => {
|
||||
$('ul.side-nav a.markasread i')[0].click();
|
||||
});
|
||||
|
||||
/* delete */
|
||||
Mousetrap.bind('del', () => {
|
||||
$('ul.side-nav a.delete i')[0].click();
|
||||
});
|
||||
}
|
||||
});
|
75
app/Resources/static/themes/material/js/shortcuts/main.js
Normal file
75
app/Resources/static/themes/material/js/shortcuts/main.js
Normal file
|
@ -0,0 +1,75 @@
|
|||
import Mousetrap from 'mousetrap';
|
||||
import $ from 'jquery';
|
||||
|
||||
function toggleFocus(cardToToogleFocus) {
|
||||
if (cardToToogleFocus) {
|
||||
$(cardToToogleFocus).toggleClass('z-depth-4');
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(() => {
|
||||
const cards = $('#content').find('.card');
|
||||
const cardNumber = cards.length;
|
||||
let cardIndex = 0;
|
||||
/* If we come from next page */
|
||||
if (window.location.hash === '#prev') {
|
||||
cardIndex = cardNumber - 1;
|
||||
}
|
||||
let card = cards[cardIndex];
|
||||
const pagination = $('.pagination');
|
||||
|
||||
/* Show nothing on quickstart */
|
||||
if ($('#content > div.quickstart').length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Focus current card */
|
||||
toggleFocus(card);
|
||||
|
||||
/* Actions */
|
||||
Mousetrap.bind('g n', () => {
|
||||
$('#nav-btn-add').trigger('click');
|
||||
return false;
|
||||
});
|
||||
|
||||
Mousetrap.bind('s', () => {
|
||||
$('#nav-btn-search').trigger('click');
|
||||
return false;
|
||||
});
|
||||
|
||||
Mousetrap.bind('esc', () => {
|
||||
$('.close').trigger('click');
|
||||
});
|
||||
|
||||
/* Select right card. If there's a next page, go to next page */
|
||||
Mousetrap.bind('right', () => {
|
||||
if (cardIndex >= 0 && cardIndex < cardNumber - 1) {
|
||||
toggleFocus(card);
|
||||
cardIndex += 1;
|
||||
card = cards[cardIndex];
|
||||
toggleFocus(card);
|
||||
return;
|
||||
}
|
||||
if (pagination.length > 0 && pagination.find('li.next:not(.disabled)').length > 0 && cardIndex === cardNumber - 1) {
|
||||
window.location.href = window.location.origin + $(pagination).find('li.next a').attr('href');
|
||||
}
|
||||
});
|
||||
|
||||
/* Select previous card. If there's a previous page, go to next page */
|
||||
Mousetrap.bind('left', () => {
|
||||
if (cardIndex > 0 && cardIndex < cardNumber) {
|
||||
toggleFocus(card);
|
||||
cardIndex -= 1;
|
||||
card = cards[cardIndex];
|
||||
toggleFocus(card);
|
||||
return;
|
||||
}
|
||||
if (pagination.length > 0 && $(pagination).find('li.prev:not(.disabled)').length > 0 && cardIndex === 0) {
|
||||
window.location.href = `${window.location.origin + $(pagination).find('li.prev a').attr('href')}#prev`;
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('enter', () => {
|
||||
window.location.href = window.location.origin + $(card).find('span.card-title a').attr('href');
|
||||
});
|
||||
});
|
|
@ -51,6 +51,8 @@ wallabag_core:
|
|||
rss_limit: 50
|
||||
reading_speed: 1
|
||||
cache_lifetime: 10
|
||||
action_mark_as_read: 1
|
||||
list_mode: 1
|
||||
fetching_error_message: |
|
||||
wallabag can't retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.
|
||||
|
||||
|
@ -78,7 +80,7 @@ doctrine:
|
|||
dbname: "%database_name%"
|
||||
user: "%database_user%"
|
||||
password: "%database_password%"
|
||||
charset: UTF8
|
||||
charset: "%database_charset%"
|
||||
path: "%database_path%"
|
||||
unix_socket: "%database_socket%"
|
||||
server_version: 5.6
|
||||
|
@ -115,12 +117,26 @@ swiftmailer:
|
|||
fos_rest:
|
||||
param_fetcher_listener: true
|
||||
body_listener: true
|
||||
format_listener: true
|
||||
view:
|
||||
mime_types:
|
||||
csv:
|
||||
- 'text/csv'
|
||||
- 'text/plain'
|
||||
pdf:
|
||||
- 'application/pdf'
|
||||
epub:
|
||||
- 'application/epub+zip'
|
||||
mobi:
|
||||
- 'application/x-mobipocket-ebook'
|
||||
view_response_listener: 'force'
|
||||
formats:
|
||||
xml: true
|
||||
json : true
|
||||
json: true
|
||||
txt: true
|
||||
csv: true
|
||||
pdf: true
|
||||
epub: true
|
||||
mobi: true
|
||||
templating_formats:
|
||||
html: true
|
||||
force_redirects:
|
||||
|
@ -129,10 +145,21 @@ fos_rest:
|
|||
default_engine: twig
|
||||
routing_loader:
|
||||
default_format: json
|
||||
format_listener:
|
||||
enabled: true
|
||||
rules:
|
||||
- { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'mobi', 'pdf', 'txt', 'csv'], fallback_format: json, prefer_extension: false }
|
||||
- { path: "^/api", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
|
||||
- { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
|
||||
# for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener
|
||||
# so we need to add custom rule for custom api export but also for all other routes of the application...
|
||||
- { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false }
|
||||
|
||||
nelmio_api_doc:
|
||||
sandbox:
|
||||
enabled: false
|
||||
cache:
|
||||
enabled: true
|
||||
name: wallabag API documentation
|
||||
|
||||
nelmio_cors:
|
||||
|
@ -185,6 +212,7 @@ fos_user:
|
|||
from_email:
|
||||
address: "%from_email%"
|
||||
sender_name: wallabag
|
||||
|
||||
fos_oauth_server:
|
||||
db_driver: orm
|
||||
client_class: Wallabag\ApiBundle\Entity\Client
|
||||
|
@ -192,7 +220,7 @@ fos_oauth_server:
|
|||
refresh_token_class: Wallabag\ApiBundle\Entity\RefreshToken
|
||||
auth_code_class: Wallabag\ApiBundle\Entity\AuthCode
|
||||
service:
|
||||
user_provider: fos_user.user_manager
|
||||
user_provider: fos_user.user_provider.username_email
|
||||
options:
|
||||
refresh_token_lifetime: 1209600
|
||||
|
||||
|
@ -213,16 +241,6 @@ kphoen_rulerz:
|
|||
executors:
|
||||
doctrine: true
|
||||
|
||||
lexik_maintenance:
|
||||
authorized:
|
||||
ips: ['127.0.0.1']
|
||||
driver:
|
||||
ttl: 3600
|
||||
class: 'Lexik\Bundle\MaintenanceBundle\Drivers\DatabaseDriver'
|
||||
response:
|
||||
code: 503
|
||||
status: "wallabag Service Temporarily Unavailable"
|
||||
|
||||
old_sound_rabbit_mq:
|
||||
connections:
|
||||
default:
|
||||
|
@ -243,6 +261,11 @@ old_sound_rabbit_mq:
|
|||
exchange_options:
|
||||
name: 'wallabag.import.readability'
|
||||
type: topic
|
||||
import_pinboard:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
type: topic
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -277,6 +300,7 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
callback: wallabag_import.consumer.amqp.pocket
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_readability:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -285,6 +309,7 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.readability'
|
||||
callback: wallabag_import.consumer.amqp.readability
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -293,6 +318,16 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
callback: wallabag_import.consumer.amqp.instapaper
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_pinboard:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
callback: wallabag_import.consumer.amqp.pinboard
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_wallabag_v1:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -301,6 +336,7 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
callback: wallabag_import.consumer.amqp.wallabag_v1
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_wallabag_v2:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -309,6 +345,7 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
callback: wallabag_import.consumer.amqp.wallabag_v2
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -317,6 +354,7 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
callback: wallabag_import.consumer.amqp.firefox
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_chrome:
|
||||
connection: default
|
||||
exchange_options:
|
||||
|
@ -325,3 +363,18 @@ old_sound_rabbit_mq:
|
|||
queue_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
callback: wallabag_import.consumer.amqp.chrome
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
|
||||
fos_js_routing:
|
||||
routes_to_expose:
|
||||
- homepage
|
||||
- starred
|
||||
- archive
|
||||
- all
|
||||
- tag
|
||||
- config
|
||||
- import
|
||||
- developer
|
||||
- howto
|
||||
- fos_user_security_logout
|
||||
- new
|
||||
|
|
|
@ -28,7 +28,7 @@ doctrine:
|
|||
dbname: "%test_database_name%"
|
||||
user: "%test_database_user%"
|
||||
password: "%test_database_password%"
|
||||
charset: UTF8
|
||||
charset: "%test_database_charset%"
|
||||
path: "%test_database_path%"
|
||||
orm:
|
||||
metadata_cache_driver:
|
||||
|
|
|
@ -19,16 +19,18 @@ parameters:
|
|||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||
database_table_prefix: wallabag_
|
||||
database_socket: null
|
||||
# with MySQL, use "utf8mb4" if you got problem with content with emojis
|
||||
database_charset: utf8
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
|
||||
locale: en
|
||||
locale: en
|
||||
|
||||
# A secret key that's used to generate certain security-related tokens
|
||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
||||
|
||||
# two factor stuff
|
||||
twofactor_auth: true
|
||||
|
@ -47,9 +49,14 @@ parameters:
|
|||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
rabbitmq_prefetch_count: 10
|
||||
|
||||
# Redis processing
|
||||
redis_scheme: tcp
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
redis_path: null
|
||||
redis_password: null
|
||||
|
||||
# sites credentials
|
||||
sites_credentials: {}
|
||||
|
|
|
@ -6,3 +6,4 @@ parameters:
|
|||
test_database_user: null
|
||||
test_database_password: null
|
||||
test_database_path: '%kernel.root_dir%/../data/db/wallabag_test.sqlite'
|
||||
test_database_charset: utf8
|
||||
|
|
|
@ -17,10 +17,6 @@ wallabag_api:
|
|||
type: annotation
|
||||
prefix: /
|
||||
|
||||
wallabag_api:
|
||||
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
|
||||
app:
|
||||
resource: "@WallabagCoreBundle/Controller/"
|
||||
type: annotation
|
||||
|
@ -52,3 +48,6 @@ craue_config_settings_modify:
|
|||
path: /settings
|
||||
defaults:
|
||||
_controller: CraueConfigBundle:Settings:modify
|
||||
|
||||
fos_js_routing:
|
||||
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
Rest_Wallabag:
|
||||
type : rest
|
||||
resource: "@WallabagApiBundle/Resources/config/routing_rest.yml"
|
||||
|
||||
type : rest
|
||||
resource: "@WallabagApiBundle/Resources/config/routing_rest.yml"
|
||||
|
|
|
@ -32,13 +32,13 @@ services:
|
|||
- { name: twig.extension }
|
||||
|
||||
wallabag.locale_listener:
|
||||
class: Wallabag\CoreBundle\EventListener\LocaleListener
|
||||
class: Wallabag\CoreBundle\Event\Listener\LocaleListener
|
||||
arguments: ["%kernel.default_locale%"]
|
||||
tags:
|
||||
- { name: kernel.event_subscriber }
|
||||
|
||||
wallabag.user_locale_listener:
|
||||
class: Wallabag\CoreBundle\EventListener\UserLocaleListener
|
||||
class: Wallabag\CoreBundle\Event\Listener\UserLocaleListener
|
||||
arguments: ["@session"]
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
|
||||
|
|
|
@ -6,3 +6,4 @@ parameters:
|
|||
test_database_user: root
|
||||
test_database_password: ~
|
||||
test_database_path: ~
|
||||
test_database_charset: utf8mb4
|
||||
|
|
|
@ -6,3 +6,4 @@ parameters:
|
|||
test_database_user: travis
|
||||
test_database_password: ~
|
||||
test_database_path: ~
|
||||
test_database_charset: utf8
|
||||
|
|
|
@ -6,3 +6,4 @@ parameters:
|
|||
test_database_user: ~
|
||||
test_database_password: ~
|
||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
||||
test_database_charset: utf8
|
||||
|
|
124
build.xml
124
build.xml
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="wallabag" default="build">
|
||||
<target name="build" depends="clean,prepare,phpunit"/>
|
||||
<target name="prepare-mysql" depends="clean,db_mysql,prepare"/>
|
||||
<target name="prepare-sqlite" depends="clean,db_sqlite,prepare"/>
|
||||
<target name="prepare-pgsql" depends="clean,db_pgsql,prepare"/>
|
||||
<target name="prepare-mysql" depends="clean,prepare_mysql"/>
|
||||
<target name="prepare-sqlite" depends="clean,prepare_sqlite"/>
|
||||
<target name="prepare-pgsql" depends="clean,prepare_pgsql"/>
|
||||
|
||||
<target name="clean" description="Cleanup build artifacts">
|
||||
<delete dir="${basedir}/var/cache"/>
|
||||
|
@ -26,11 +26,48 @@
|
|||
<arg value="doctrine:schema:create"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:fixtures:load"/>
|
||||
<arg value="--no-interaction"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="prepare_mysql" description="Run test for MySQL">
|
||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||
<exec executable="cp">
|
||||
<arg value="${basedir}/app/config/tests/parameters_test.mysql.yml"/>
|
||||
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="cache:clear"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:drop"/>
|
||||
<arg value="--force"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:create"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:import"/>
|
||||
<arg value="data/sql/mysql_base.sql"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:migrations:migrate"/>
|
||||
<arg value="--no-interaction"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:fixtures:load"/>
|
||||
|
@ -39,46 +76,91 @@
|
|||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="db_mysql" description="Run test for MySQL">
|
||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||
<exec executable="cp">
|
||||
<arg value="${basedir}/app/config/tests/parameters_test.mysql.yml"/>
|
||||
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||
</exec>
|
||||
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="cache:clear"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="db_sqlite" description="Run test for SQLite">
|
||||
<target name="prepare_sqlite" description="Run test for SQLite">
|
||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||
<exec executable="cp">
|
||||
<arg value="${basedir}/app/config/tests/parameters_test.sqlite.yml"/>
|
||||
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||
</exec>
|
||||
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="cache:clear"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:drop"/>
|
||||
<arg value="--force"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:create"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:schema:create"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:migrations:migrate"/>
|
||||
<arg value="--no-interaction"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:fixtures:load"/>
|
||||
<arg value="--no-interaction"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="db_pgsql" description="Run test for PostgreSQL">
|
||||
<target name="prepare_pgsql" description="Run test for PostgreSQL">
|
||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||
<exec executable="cp">
|
||||
<arg value="${basedir}/app/config/tests/parameters_test.pgsql.yml"/>
|
||||
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||
</exec>
|
||||
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="cache:clear"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:drop"/>
|
||||
<arg value="--force"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:database:create"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="psql">
|
||||
<arg value="-h"/>
|
||||
<arg value="localhost"/>
|
||||
<arg value="-d"/>
|
||||
<arg value="wallabag_test"/>
|
||||
<arg value="-U"/>
|
||||
<arg value="travis"/>
|
||||
<arg value="-f"/>
|
||||
<arg value="data/sql/pgsql_base.sql"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:migrations:migrate"/>
|
||||
<arg value="--no-interaction"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
<exec executable="php">
|
||||
<arg value="${basedir}/bin/console"/>
|
||||
<arg value="doctrine:fixtures:load"/>
|
||||
<arg value="--no-interaction"/>
|
||||
<arg value="--env=test"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="phpunit" description="Run unit tests with PHPUnit + HTML Coverage">
|
||||
|
|
|
@ -43,13 +43,13 @@
|
|||
"ext-iconv": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"ext-pdo": "*",
|
||||
"symfony/symfony": "3.1.*",
|
||||
"symfony/symfony": "3.2.*",
|
||||
"doctrine/orm": "^2.5",
|
||||
"doctrine/doctrine-bundle": "^1.6",
|
||||
"doctrine/doctrine-cache-bundle": "^1.2",
|
||||
"twig/extensions": "~1.0",
|
||||
"symfony/swiftmailer-bundle": "^2.3",
|
||||
"symfony/monolog-bundle": "^2.8",
|
||||
"symfony/monolog-bundle": "^3.0",
|
||||
"sensio/distribution-bundle": "^5.0",
|
||||
"sensio/framework-extra-bundle": "^3.0.2",
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
|
@ -58,37 +58,39 @@
|
|||
"jms/serializer-bundle": "~1.1",
|
||||
"nelmio/api-doc-bundle": "~2.7",
|
||||
"mgargano/simplehtmldom": "~1.5",
|
||||
"tecnickcom/tcpdf": "~6.2",
|
||||
"tecnickcom/tc-lib-pdf": "dev-master",
|
||||
"simplepie/simplepie": "~1.3.1",
|
||||
"willdurand/hateoas-bundle": "~1.0",
|
||||
"htmlawed/htmlawed": "~1.1.19",
|
||||
"liip/theme-bundle": "~1.1",
|
||||
"lexik/form-filter-bundle": "~5.0",
|
||||
"j0k3r/graby": "~1.0",
|
||||
"friendsofsymfony/user-bundle": "dev-master#e168ed64629d034cb9cbbffb9d4350f62ef04fab as 2.0.x-dev",
|
||||
"friendsofsymfony/user-bundle": "2.0.x-dev",
|
||||
"friendsofsymfony/oauth-server-bundle": "^1.5",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"scheb/two-factor-bundle": "~2.0",
|
||||
"grandt/phpepub": "~4.0",
|
||||
"wallabag/php-mobi": "~1.0.0",
|
||||
"kphoen/rulerz-bundle": "~0.10",
|
||||
"kphoen/rulerz": "0.19.1",
|
||||
"guzzlehttp/guzzle": "^5.3.1",
|
||||
"doctrine/doctrine-migrations-bundle": "^1.0",
|
||||
"paragonie/random_compat": "~1.0",
|
||||
"craue/config-bundle": "~1.4",
|
||||
"mnapoli/piwik-twig-extension": "^1.0",
|
||||
"lexik/maintenance-bundle": "~2.1",
|
||||
"ocramius/proxy-manager": "1.*",
|
||||
"white-october/pagerfanta-bundle": "^1.0",
|
||||
"php-amqplib/rabbitmq-bundle": "^1.8",
|
||||
"predis/predis": "^1.0",
|
||||
"javibravo/simpleue": "^1.0"
|
||||
"javibravo/simpleue": "^1.0",
|
||||
"symfony/dom-crawler": "^3.1",
|
||||
"friendsofsymfony/jsrouting-bundle": "^1.6",
|
||||
"bdunogier/guzzle-site-authenticator": "dev-master"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-fixtures-bundle": "~2.2",
|
||||
"doctrine/data-fixtures": "~1.1.1",
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"symfony/phpunit-bridge": "^3.0",
|
||||
"friendsofphp/php-cs-fixer": "~1.9",
|
||||
"m6web/redis-mock": "^2.0"
|
||||
|
@ -98,6 +100,7 @@
|
|||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
|
@ -113,6 +116,7 @@
|
|||
"symfony-var-dir": "var",
|
||||
"symfony-web-dir": "web",
|
||||
"symfony-tests-dir": "tests",
|
||||
"symfony-assets-install": "symlink",
|
||||
"incenteev-parameters": {
|
||||
"file": "app/config/parameters.yml"
|
||||
}
|
||||
|
|
25
data/sql/mysql_base.sql
Normal file
25
data/sql/mysql_base.sql
Normal file
|
@ -0,0 +1,25 @@
|
|||
CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (name), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE `wallabag_entry` (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, title LONGTEXT DEFAULT NULL, url LONGTEXT DEFAULT NULL, is_archived TINYINT(1) NOT NULL, is_starred TINYINT(1) NOT NULL, content LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype LONGTEXT DEFAULT NULL, language LONGTEXT DEFAULT NULL, reading_time INT DEFAULT NULL, domain_name LONGTEXT DEFAULT NULL, preview_picture LONGTEXT DEFAULT NULL, is_public TINYINT(1) DEFAULT '0', INDEX IDX_F4D18282A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE wallabag_entry_tag (entry_id INT NOT NULL, tag_id INT NOT NULL, INDEX IDX_C9F0DD7CBA364942 (entry_id), INDEX IDX_C9F0DD7CBAD26311 (tag_id), PRIMARY KEY(entry_id, tag_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE `wallabag_config` (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, theme VARCHAR(255) NOT NULL, items_per_page INT NOT NULL, language VARCHAR(255) NOT NULL, rss_token VARCHAR(255) DEFAULT NULL, rss_limit INT DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, UNIQUE INDEX UNIQ_87E64C53A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE `wallabag_tagging_rule` (id INT AUTO_INCREMENT NOT NULL, config_id INT DEFAULT NULL, rule VARCHAR(255) NOT NULL, tags LONGTEXT NOT NULL COMMENT '(DC2Type:simple_array)', INDEX IDX_2D9B3C5424DB0683 (config_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE `wallabag_tag` (id INT AUTO_INCREMENT NOT NULL, `label` LONGTEXT NOT NULL, slug VARCHAR(128) NOT NULL, UNIQUE INDEX UNIQ_4CA58A8C989D9B62 (slug), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE wallabag_oauth2_clients (id INT AUTO_INCREMENT NOT NULL, random_id VARCHAR(255) NOT NULL, redirect_uris LONGTEXT NOT NULL COMMENT '(DC2Type:array)', secret VARCHAR(255) NOT NULL, allowed_grant_types LONGTEXT NOT NULL COMMENT '(DC2Type:array)', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE wallabag_oauth2_access_tokens (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_368A42095F37A13B (token), INDEX IDX_368A420919EB6921 (client_id), INDEX IDX_368A4209A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE wallabag_oauth2_refresh_tokens (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_20C9FB245F37A13B (token), INDEX IDX_20C9FB2419EB6921 (client_id), INDEX IDX_20C9FB24A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE wallabag_oauth2_auth_codes (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, redirect_uri LONGTEXT NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_EE52E3FA5F37A13B (token), INDEX IDX_EE52E3FA19EB6921 (client_id), INDEX IDX_EE52E3FAA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE `wallabag_user` (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled TINYINT(1) NOT NULL, salt VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, locked TINYINT(1) NOT NULL, expired TINYINT(1) NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL, roles LONGTEXT NOT NULL COMMENT '(DC2Type:array)', credentials_expired TINYINT(1) NOT NULL, credentials_expire_at DATETIME DEFAULT NULL, name LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INT DEFAULT NULL, twoFactorAuthentication TINYINT(1) NOT NULL, trusted LONGTEXT DEFAULT NULL COMMENT '(DC2Type:json_array)', UNIQUE INDEX UNIQ_1D63E7E592FC23A8 (username_canonical), UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF (email_canonical), UNIQUE INDEX UNIQ_1D63E7E5C05FB297 (confirmation_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
CREATE TABLE wallabag_annotation (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, entry_id INT DEFAULT NULL, text LONGTEXT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, quote VARCHAR(255) NOT NULL, ranges LONGTEXT NOT NULL COMMENT '(DC2Type:array)', INDEX IDX_A7AED006A76ED395 (user_id), INDEX IDX_A7AED006BA364942 (entry_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
|
||||
ALTER TABLE `wallabag_entry` ADD CONSTRAINT FK_F4D18282A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBA364942 FOREIGN KEY (entry_id) REFERENCES `wallabag_entry` (id);
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBAD26311 FOREIGN KEY (tag_id) REFERENCES `wallabag_tag` (id);
|
||||
ALTER TABLE `wallabag_config` ADD CONSTRAINT FK_87E64C53A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
|
||||
ALTER TABLE `wallabag_tagging_rule` ADD CONSTRAINT FK_2D9B3C5424DB0683 FOREIGN KEY (config_id) REFERENCES `wallabag_config` (id);
|
||||
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A420919EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id);
|
||||
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
|
||||
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB2419EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id);
|
||||
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
|
||||
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FA19EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id);
|
||||
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006BA364942 FOREIGN KEY (entry_id) REFERENCES `wallabag_entry` (id);
|
62
data/sql/pgsql_base.sql
Normal file
62
data/sql/pgsql_base.sql
Normal file
|
@ -0,0 +1,62 @@
|
|||
CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, PRIMARY KEY(name));
|
||||
CREATE UNIQUE INDEX UNIQ_5D9649505E237E06 ON wallabag_craue_config_setting (name);
|
||||
CREATE TABLE "wallabag_entry" (id INT NOT NULL, user_id INT DEFAULT NULL, title TEXT DEFAULT NULL, url TEXT DEFAULT NULL, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content TEXT DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, mimetype TEXT DEFAULT NULL, language TEXT DEFAULT NULL, reading_time INT DEFAULT NULL, domain_name TEXT DEFAULT NULL, preview_picture TEXT DEFAULT NULL, is_public BOOLEAN DEFAULT 'false', PRIMARY KEY(id));
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON "wallabag_entry" (user_id);
|
||||
CREATE TABLE wallabag_entry_tag (entry_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY(entry_id, tag_id));
|
||||
CREATE INDEX IDX_C9F0DD7CBA364942 ON wallabag_entry_tag (entry_id);
|
||||
CREATE INDEX IDX_C9F0DD7CBAD26311 ON wallabag_entry_tag (tag_id);
|
||||
CREATE TABLE "wallabag_config" (id INT NOT NULL, user_id INT DEFAULT NULL, theme VARCHAR(255) NOT NULL, items_per_page INT NOT NULL, language VARCHAR(255) NOT NULL, rss_token VARCHAR(255) DEFAULT NULL, rss_limit INT DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON "wallabag_config" (user_id);
|
||||
CREATE TABLE "wallabag_tagging_rule" (id INT NOT NULL, config_id INT DEFAULT NULL, rule VARCHAR(255) NOT NULL, tags TEXT NOT NULL, PRIMARY KEY(id));
|
||||
CREATE INDEX IDX_2D9B3C5424DB0683 ON "wallabag_tagging_rule" (config_id);
|
||||
COMMENT ON COLUMN "wallabag_tagging_rule".tags IS '(DC2Type:simple_array)';
|
||||
CREATE TABLE "wallabag_tag" (id INT NOT NULL, label TEXT NOT NULL, slug VARCHAR(128) NOT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_4CA58A8C989D9B62 ON "wallabag_tag" (slug);
|
||||
CREATE TABLE wallabag_oauth2_clients (id INT NOT NULL, random_id VARCHAR(255) NOT NULL, redirect_uris TEXT NOT NULL, secret VARCHAR(255) NOT NULL, allowed_grant_types TEXT NOT NULL, PRIMARY KEY(id));
|
||||
COMMENT ON COLUMN wallabag_oauth2_clients.redirect_uris IS '(DC2Type:array)';
|
||||
COMMENT ON COLUMN wallabag_oauth2_clients.allowed_grant_types IS '(DC2Type:array)';
|
||||
CREATE TABLE wallabag_oauth2_access_tokens (id INT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_368A42095F37A13B ON wallabag_oauth2_access_tokens (token);
|
||||
CREATE INDEX IDX_368A420919EB6921 ON wallabag_oauth2_access_tokens (client_id);
|
||||
CREATE INDEX IDX_368A4209A76ED395 ON wallabag_oauth2_access_tokens (user_id);
|
||||
CREATE TABLE wallabag_oauth2_refresh_tokens (id INT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_20C9FB245F37A13B ON wallabag_oauth2_refresh_tokens (token);
|
||||
CREATE INDEX IDX_20C9FB2419EB6921 ON wallabag_oauth2_refresh_tokens (client_id);
|
||||
CREATE INDEX IDX_20C9FB24A76ED395 ON wallabag_oauth2_refresh_tokens (user_id);
|
||||
CREATE TABLE wallabag_oauth2_auth_codes (id INT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, redirect_uri TEXT NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_EE52E3FA5F37A13B ON wallabag_oauth2_auth_codes (token);
|
||||
CREATE INDEX IDX_EE52E3FA19EB6921 ON wallabag_oauth2_auth_codes (client_id);
|
||||
CREATE INDEX IDX_EE52E3FAA76ED395 ON wallabag_oauth2_auth_codes (user_id);
|
||||
CREATE TABLE "wallabag_user" (id INT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, last_login TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, locked BOOLEAN NOT NULL, expired BOOLEAN NOT NULL, expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, roles TEXT NOT NULL, credentials_expired BOOLEAN NOT NULL, credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, name TEXT DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, authCode INT DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted TEXT DEFAULT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON "wallabag_user" (username_canonical);
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON "wallabag_user" (email_canonical);
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON "wallabag_user" (confirmation_token);
|
||||
COMMENT ON COLUMN "wallabag_user".roles IS '(DC2Type:array)';
|
||||
COMMENT ON COLUMN "wallabag_user".trusted IS '(DC2Type:json_array)';
|
||||
CREATE TABLE wallabag_annotation (id INT NOT NULL, user_id INT DEFAULT NULL, entry_id INT DEFAULT NULL, text TEXT NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, quote VARCHAR(255) NOT NULL, ranges TEXT NOT NULL, PRIMARY KEY(id));
|
||||
CREATE INDEX IDX_A7AED006A76ED395 ON wallabag_annotation (user_id);
|
||||
CREATE INDEX IDX_A7AED006BA364942 ON wallabag_annotation (entry_id);
|
||||
COMMENT ON COLUMN wallabag_annotation.ranges IS '(DC2Type:array)';
|
||||
CREATE SEQUENCE "entry_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE "config_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE "tagging_rule_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE "tag_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE oauth2_clients_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE oauth2_access_tokens_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE oauth2_refresh_tokens_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE oauth2_auth_codes_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE "user_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
CREATE SEQUENCE annotation_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
|
||||
ALTER TABLE "wallabag_entry" ADD CONSTRAINT FK_F4D18282A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBAD26311 FOREIGN KEY (tag_id) REFERENCES "wallabag_tag" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE "wallabag_config" ADD CONSTRAINT FK_87E64C53A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE "wallabag_tagging_rule" ADD CONSTRAINT FK_2D9B3C5424DB0683 FOREIGN KEY (config_id) REFERENCES "wallabag_config" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A420919EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB2419EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FA19EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006BA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
|
33
data/sql/sqlite_base.sql
Normal file
33
data/sql/sqlite_base.sql
Normal file
|
@ -0,0 +1,33 @@
|
|||
CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, PRIMARY KEY(name));
|
||||
CREATE UNIQUE INDEX UNIQ_5D9649505E237E06 ON wallabag_craue_config_setting (name);
|
||||
CREATE TABLE "wallabag_tagging_rule" (id INTEGER NOT NULL, config_id INTEGER DEFAULT NULL, rule VARCHAR(255) NOT NULL, tags CLOB NOT NULL, PRIMARY KEY(id), CONSTRAINT FK_2D9B3C5424DB0683 FOREIGN KEY (config_id) REFERENCES "wallabag_config" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_2D9B3C5424DB0683 ON "wallabag_tagging_rule" (config_id);
|
||||
CREATE TABLE "wallabag_tag" (id INTEGER NOT NULL, label CLOB NOT NULL, slug VARCHAR(128) NOT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_4CA58A8C989D9B62 ON "wallabag_tag" (slug);
|
||||
CREATE TABLE "wallabag_entry" (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, title CLOB DEFAULT NULL, url CLOB DEFAULT NULL, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL, language CLOB DEFAULT NULL, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL, preview_picture CLOB DEFAULT NULL, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id), CONSTRAINT FK_F4D18282A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON "wallabag_entry" (user_id);
|
||||
CREATE TABLE wallabag_entry_tag (entry_id INTEGER NOT NULL, tag_id INTEGER NOT NULL, PRIMARY KEY(entry_id, tag_id), CONSTRAINT FK_C9F0DD7CBA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_C9F0DD7CBAD26311 FOREIGN KEY (tag_id) REFERENCES "wallabag_tag" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_C9F0DD7CBA364942 ON wallabag_entry_tag (entry_id);
|
||||
CREATE INDEX IDX_C9F0DD7CBAD26311 ON wallabag_entry_tag (tag_id);
|
||||
CREATE TABLE "wallabag_config" (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL, rss_token VARCHAR(255) DEFAULT NULL, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_87E64C53A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON "wallabag_config" (user_id);
|
||||
CREATE TABLE wallabag_oauth2_refresh_tokens (id INTEGER NOT NULL, client_id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INTEGER DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_20C9FB2419EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE UNIQUE INDEX UNIQ_20C9FB245F37A13B ON wallabag_oauth2_refresh_tokens (token);
|
||||
CREATE INDEX IDX_20C9FB2419EB6921 ON wallabag_oauth2_refresh_tokens (client_id);
|
||||
CREATE INDEX IDX_20C9FB24A76ED395 ON wallabag_oauth2_refresh_tokens (user_id);
|
||||
CREATE TABLE wallabag_oauth2_access_tokens (id INTEGER NOT NULL, client_id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INTEGER DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_368A420919EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE UNIQUE INDEX UNIQ_368A42095F37A13B ON wallabag_oauth2_access_tokens (token);
|
||||
CREATE INDEX IDX_368A420919EB6921 ON wallabag_oauth2_access_tokens (client_id);
|
||||
CREATE INDEX IDX_368A4209A76ED395 ON wallabag_oauth2_access_tokens (user_id);
|
||||
CREATE TABLE wallabag_oauth2_auth_codes (id INTEGER NOT NULL, client_id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, token VARCHAR(255) NOT NULL, redirect_uri CLOB NOT NULL, expires_at INTEGER DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_EE52E3FA19EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE UNIQUE INDEX UNIQ_EE52E3FA5F37A13B ON wallabag_oauth2_auth_codes (token);
|
||||
CREATE INDEX IDX_EE52E3FA19EB6921 ON wallabag_oauth2_auth_codes (client_id);
|
||||
CREATE INDEX IDX_EE52E3FAA76ED395 ON wallabag_oauth2_auth_codes (user_id);
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL, redirect_uris CLOB NOT NULL, secret VARCHAR(255) NOT NULL, allowed_grant_types CLOB NOT NULL, PRIMARY KEY(id));
|
||||
CREATE TABLE "wallabag_user" (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expired BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL, credentials_expired BOOLEAN NOT NULL, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON "wallabag_user" (username_canonical);
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON "wallabag_user" (email_canonical);
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON "wallabag_user" (confirmation_token);
|
||||
CREATE TABLE wallabag_annotation (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, entry_id INTEGER DEFAULT NULL, text CLOB NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, quote VARCHAR(255) NOT NULL, ranges CLOB NOT NULL, PRIMARY KEY(id), CONSTRAINT FK_A7AED006A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_A7AED006BA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_A7AED006A76ED395 ON wallabag_annotation (user_id);
|
||||
CREATE INDEX IDX_A7AED006BA364942 ON wallabag_annotation (entry_id);
|
|
@ -47,6 +47,7 @@ Bearbeite deine ``app/config/parameters.yml``-Datei, um die RabbitMQ-Parameter z
|
|||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
rabbitmq_prefetch_count: 10 # lesen http://www.rabbitmq.com/consumer-prefetch.html
|
||||
|
||||
RabbitMQ in wallabag aktivieren
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -149,10 +150,10 @@ Abhängig davon, über welchen Service du importieren möchtest, musst du den en
|
|||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# für den Chrome-Import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
Wenn du den Import nur für einige Artikel nutzen willst, kannst du die Nummer festlegen (hier: 12) und der Consumer wird nach dem zwölften Artikel aufhören:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
Wartungsmodus
|
||||
=============
|
||||
|
||||
Wenn du längere Aufgaben auf deiner wallabag Instanz ausführen willst, kannst du den Wartungsmodus aktivieren.
|
||||
Keiner wird dann Zugang zu deiner Instanz haben.
|
||||
|
||||
Aktivieren des Wartungsmodus
|
||||
----------------------------
|
||||
|
||||
Um den Wartungsmodus zu aktivieren, führe folgendes Kommando aus:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock -e=prod --no-interaction
|
||||
|
||||
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
|
||||
|
||||
::
|
||||
|
||||
lexik_maintenance:
|
||||
authorized:
|
||||
ips: ['127.0.0.1']
|
||||
|
||||
|
||||
Deaktivieren des Wartungsmodus
|
||||
------------------------
|
||||
|
||||
Um den Wartungsmodus zu deaktivieren, führe dieses Kommando aus:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
56
docs/de/developer/paywall.rst
Normal file
56
docs/de/developer/paywall.rst
Normal file
|
@ -0,0 +1,56 @@
|
|||
Articles behind a paywall
|
||||
=========================
|
||||
|
||||
wallabag can fetch articles from websites which use a paywall system.
|
||||
|
||||
Enable paywall authentication
|
||||
-----------------------------
|
||||
|
||||
In internal settings, in the **Article** section, enable authentication for websites with paywall (with the value 1).
|
||||
|
||||
Configure credentials in wallabag
|
||||
---------------------------------
|
||||
|
||||
Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. Here is an example for some french websites:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
sites_credentials:
|
||||
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
|
||||
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
|
||||
|
||||
.. note::
|
||||
|
||||
These credentials will be shared between each user of your wallabag instance.
|
||||
|
||||
Parsing configuration files
|
||||
---------------------------
|
||||
|
||||
.. note::
|
||||
|
||||
Read `this part of the documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_ to understand the configuration files.
|
||||
|
||||
Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``,
|
||||
``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``.
|
||||
|
||||
Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated
|
||||
on a website where the login form is loaded after the page (by ajax for example).
|
||||
|
||||
``login_uri`` is the action URL of the form (``action`` attribute in the form).
|
||||
``login_username_field`` is the ``name`` attribute of the login field.
|
||||
``login_password_field`` is the ``name`` attribute of the password field.
|
||||
|
||||
For example:
|
||||
|
||||
.. code::
|
||||
|
||||
title://div[@id="titrage-contenu"]/h1[@class="title"]
|
||||
body: //div[@class="contenu-html"]/div[@class="page-pane"]
|
||||
|
||||
requires_login: yes
|
||||
|
||||
login_uri: http://www.arretsurimages.net/forum/login.php
|
||||
login_username_field: username
|
||||
login_password_field: password
|
||||
|
||||
not_logged_in_xpath: //body[@class="not-logged-in"]
|
|
@ -20,7 +20,7 @@ der ISO 639-1 Code deiner Sprache ist (`siehe Wikipedia <https://en.wikipedia.or
|
|||
Andere Dateien zum Übersetzen:
|
||||
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
|
||||
|
||||
Du musst die ``THE_TRANSLATION_FILE.CODE.yml`` Dateien erstellen.
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
|||
|
||||
developer/api
|
||||
developer/docker
|
||||
developer/paywall
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/asynchronous
|
||||
|
|
|
@ -27,6 +27,14 @@ Lesegeschwindigkeit
|
|||
wallabag berechnet die Lesezeit für jeden Artikel. Du kannst hier definieren, dank dieser Liste, ob du
|
||||
ein schneller oder langsamer Leser bist. wallabag wird die Lesezeit für jeden Artikel neu berechnen.
|
||||
|
||||
Wohin möchtest du weitergeleitet werden, nach dem ein Artikel als gelesen markiert wurde?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Jedes Mal, wenn du eine Aktion ausführst (nach dem Markieren eines Artikels als gelesen oder Favorit, nach dem Löschen eines Artikels oder dem Entfernen eines Tag von einem Eintrag), kannst du weitergeleitet werden:
|
||||
|
||||
- zur Homepage
|
||||
- zur aktuellen Seite
|
||||
|
||||
Sprache
|
||||
~~~~~~~
|
||||
|
||||
|
@ -44,6 +52,9 @@ Jetzt hast du drei Links, einen für jeden Status: Füge sie in deinem liebsten
|
|||
|
||||
Du kannst auch definieren wie viele Artikel du in deinem RSS Feed (Standardwert: 50) haben willst.
|
||||
|
||||
There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page.
|
||||
The pagination follow `the RFC <https://tools.ietf.org/html/rfc5005#page-4>`_ about that, which means you'll find the ``next``, ``previous`` & ``last`` page link inside the `<channel>` tag of each RSS feed.
|
||||
|
||||
Benutzer-Informationen
|
||||
----------------------
|
||||
|
||||
|
|
|
@ -30,6 +30,11 @@ Sprache
|
|||
wallabag (via graby) kann die Artikelsprache erkennen. Es ist einfach für dich, Artikel
|
||||
in einer bestimmten Sprache zu filtern.
|
||||
|
||||
HTTP status
|
||||
-----------
|
||||
|
||||
You can retrieve the articles by filtering by their HTTP status code: 200, 404, 500, etc.
|
||||
|
||||
Lesezeit
|
||||
--------
|
||||
|
||||
|
|
|
@ -42,35 +42,50 @@ Du musst wallabag erlauben, mit deinem Pocketaccount zu interagieren.
|
|||
Deine Daten werden importiert. Datenimport kann ein sehr anspruchsvoller Prozess für deinen Server
|
||||
sein (wir müssen daran arbeiten, um diesen Import zu verbessern).
|
||||
|
||||
Readability
|
||||
-----------
|
||||
Von Readability
|
||||
----------------
|
||||
|
||||
Exportiere deine Readability-Daten
|
||||
Exportiere deine Readability Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Auf der Seite Tools (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), klicke auf "Exportiere deine Daten" in dem Abschnitt "Daten Export". Du wirst eine E-Mail empfangen, um eine JSON Datei herunterladen zu können (Datei endet aber nicht auf .json).
|
||||
|
||||
Importiere deine Daten in wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Auf der Tools-Seite (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), klicke auf "Daten exportieren" im "Daten-Export"-Abschnitt. Du wirst eine E-Mail mit einem Downloadlink zu einer JSON-Datei erhalten, welche zugegebenermaßen nicht mit .json endet.
|
||||
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Readability Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
|
||||
|
||||
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
|
||||
|
||||
Von Pinboard
|
||||
-------------
|
||||
|
||||
Exportiere deine Pinboard Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Auf der Seite Backup (`https://pinboard.in/settings/backup <https://pinboard.in/settings/backup>`_), klicke auf "JSON" in dem Abschnitt "Lesezeichen". Eine JSON Datei wird heruntergeladen (z.B. ``pinboard_export``).
|
||||
|
||||
Importiere deine Daten in wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Klicke auf den ``Importieren``-Link im Menü, auf ``Inhalte importieren`` im Readability-Abschnitt und wähle dann deine JSON-Datei aus und lade sie hoch.
|
||||
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Pinboard Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
|
||||
|
||||
Deine Daten werden dann importiert. Dies kann eine starke Belastung für den Server sein.
|
||||
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
|
||||
|
||||
Instapaper
|
||||
----------
|
||||
Von Instapaper
|
||||
---------------
|
||||
|
||||
Exportiere deine Instapaper-Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Exportiere deine Instapaper Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Klicke in den Einstellungen (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_) auf "CSV-Datei herunterladen" im Export-Abschnitt. Eine CSV-Datei mit dem Namen ``instapaper-export.csv`` wird heruntergeladen.
|
||||
Auf der Seite Einstellungen (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), klicke auf "Download .CSV Datei" in dem Abschnitt "Export". Eine CSV Datei wird heruntergeladen (z.B. ``instapaper-export.csv``).
|
||||
|
||||
Importiere deine Daten in wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Klicke auf den ``Importieren``-Link im Menü, auf ``Inhalte importieren`` im Instapaper-Abschnitt und wähle dann deine CSV-Datei aus und lade sie hoch.
|
||||
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Instapaper Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
|
||||
|
||||
Deine Daten werden dann importiert. Dies kann eine starke Belastung für den Server sein.
|
||||
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
|
||||
|
||||
wallabag 1.x
|
||||
------------
|
||||
|
@ -134,4 +149,4 @@ Als Ergebnis wirst du so etwas erhalten:
|
|||
Start : 05-04-2016 11:36:07 ---
|
||||
403 imported
|
||||
0 already saved
|
||||
End : 05-04-2016 11:36:09 ---
|
||||
End : 05-04-2016 11:36:09 ---
|
||||
|
|
|
@ -16,7 +16,7 @@ Composer installieren:
|
|||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
curl -s https://getcomposer.org/installer | php
|
||||
|
||||
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
|
||||
|
||||
|
@ -86,7 +86,7 @@ Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacke
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ Wenn du nicht weißt, welchen Wert du setzen sollst, belasse es bei dem Standard
|
|||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
redis_path: null
|
||||
redis_password: null
|
||||
|
||||
Bedeutung von jedem Parameter
|
||||
-----------------------------
|
||||
|
@ -91,3 +92,4 @@ Bedeutung von jedem Parameter
|
|||
"redis_host", "localhost", "IP oder Hostname des Zielservers (ignoriert bei Unix Schema)"
|
||||
"redis_port", "6379", "TCP/IP Port des Zielservers (ignoriert bei Unix Schema)"
|
||||
"redis_path", "null", "Pfad zur Unix Domain Socket Datei, wenn Redis Unix Domain Sockets nutzt"
|
||||
"redis_password", "null", "Kennwort, welches in der Redis-Server-Konfiguration definiert ist (Parameter `requirepass` in `redis.conf`)"
|
||||
|
|
797
docs/de/user/query-upgrade-21-22.rst
Normal file
797
docs/de/user/query-upgrade-21-22.rst
Normal file
|
@ -0,0 +1,797 @@
|
|||
Migration 20161001072726
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
|
||||
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
We didn't write down migration for ``20161001072726``.
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
|
||||
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
We didn't write down migration for ``20161001072726``.
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
This migration can only be executed safely on MySQL or PostgreSQL.
|
||||
|
||||
Migration 20161022134138
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
|
||||
ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
|
||||
ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
|
||||
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
|
||||
PostgreSQL and SQLite
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This migration only apply to MySQL.
|
||||
|
||||
Migration 20161024212538
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
|
||||
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
|
||||
ALTER TABLE wallabag_oauth2_clients DROP user_id
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
|
||||
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
|
||||
ALTER TABLE wallabag_oauth2_clients DROP user_id
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
|
||||
DROP TABLE wallabag_oauth2_clients
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
|
||||
INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
|
||||
DROP TABLE __temp__wallabag_oauth2_clients
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_635D765EA76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
|
||||
DROP TABLE wallabag_oauth2_clients
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
|
||||
DROP TABLE __temp__wallabag_oauth2_clients
|
||||
|
||||
Migration 20161031132655
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
Migration 20161104073720
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_created_at ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX idx_entry_created_at
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_created_at
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at_idx
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
|
||||
Migration 20161106113822
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP action_mark_as_read
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP action_mark_as_read
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_87E64C53A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
|
||||
DROP TABLE wallabag_config
|
||||
CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
|
||||
DROP TABLE __temp__wallabag_config
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
|
||||
|
||||
Migration 20161117071626
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
Migration 20161118134328
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry DROP http_status
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry DROP http_status
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
|
||||
Migration 20161122144743
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
Migration 20161122203647
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP expired
|
||||
ALTER TABLE wallabag_user DROP credentials_expired
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_1D63E7E5C05FB297
|
||||
DROP INDEX UNIQ_1D63E7E5A0D96FBF
|
||||
DROP INDEX UNIQ_1D63E7E592FC23A8
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
|
||||
DROP TABLE wallabag_user
|
||||
CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
|
||||
DROP TABLE __temp__wallabag_user
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
Migration 20161128084725
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP list_mode
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP list_mode
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_87E64C53A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
|
||||
DROP TABLE wallabag_config
|
||||
CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
|
||||
DROP TABLE __temp__wallabag_config
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
|
||||
|
||||
Migration 20161128131503
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP locked
|
||||
ALTER TABLE wallabag_user DROP credentials_expire_at
|
||||
ALTER TABLE wallabag_user DROP expires_at
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_1D63E7E592FC23A8
|
||||
DROP INDEX UNIQ_1D63E7E5A0D96FBF
|
||||
DROP INDEX UNIQ_1D63E7E5C05FB297
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
|
||||
DROP TABLE wallabag_user
|
||||
CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM __temp__wallabag_user
|
||||
DROP TABLE __temp__wallabag_user
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
|
||||
|
||||
Migration 20161214094403
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_uid ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX idx_entry_uid
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at_idx
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_uid
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
|
@ -3,10 +3,66 @@ wallabag-Installation aktualisieren
|
|||
|
||||
Du wirst hier mehrere Wege finden, um deine wallabag zu aktualisieren:
|
||||
|
||||
- `von 2.1.x zu 2.2.x <#upgrade-von-2-1-x-zu-2-2-x>`_
|
||||
- `von 2.0.x zu 2.1.1 <#upgrade-von-2-0-x-zu-2-1-1>`_
|
||||
- `von 2.1.x zu 2.1.y <#upgrade-von-2-1-x-zu-2-1-y>`_
|
||||
- `von 1.x zu 2.x <#upgrade-von-1-x>`_
|
||||
|
||||
Upgrade von 2.1.x zu 2.2.x
|
||||
--------------------------
|
||||
|
||||
Upgrade auf einem dedizierten Webserver
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
|
||||
Erklärungen über die Datenbankmigration
|
||||
"""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
Während des Updates migrieren wir die Datenbank.
|
||||
|
||||
Alle Datenbankmigrationen sind im Verzeichnis ``app/DoctrineMigrations`` gespeichert. Jede von ihnen kann einzeln ausgeführt werden:
|
||||
``bin/console doctrine:migrations:execute 20161001072726 --env=prod``.
|
||||
|
||||
Dies ist die Migrationsliste von 2.1.x auf 2.2.0:
|
||||
|
||||
* ``20161001072726``: Fremdschlüssel für das Zurücksetzen des Kontos hinzugefügt
|
||||
* ``20161022134138``: Datenbank zum ``utf8mb4``-Encoding ändern (nur für MySQL)
|
||||
* ``20161024212538``: ``user_id``-Spalte zu ``oauth2_clients`` hinzugefügt, um Benutzer davon abzuhalten, API-Clients anderer Nutzer zu löschen
|
||||
* ``20161031132655``: Interne Einstellung für das (de-)aktivieren vom Bilder-Download hinzugefügt
|
||||
* ``20161104073720``: ``created_at``-Index zur ``entry``-Tabelle hinzugefügt
|
||||
* ``20161106113822``: ``action_mark_as_read``-Feld zur ``config``-Tabelle hinzugefügt
|
||||
* ``20161117071626``: Interne Einstellung zum Teilen mit unmark.it hinzugefügt
|
||||
* ``20161118134328``: ``http_status``-Feld zur ``entry``-Tabelle hinzugefügt
|
||||
* ``20161122144743``: Interne Einstellung für das (de-)aktivieren zum Holen von Artikeln mit einer Paywall hinzugefügt
|
||||
* ``20161122203647``: ``expired``- und ``credentials_expired``-Feld aus der ``user``-Tabelle entfernt
|
||||
|
||||
Upgrade auf einem Shared Hosting
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sichere deine ``app/config/parameters.yml``-Datei.
|
||||
|
||||
Lade das letzte Release von wallabag herunter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
Du findest den `aktuellen MD5-Hash auf unserer Webseite <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extrahiere das Archiv in deinen wallabag-Ordner und ersetze die ``app/config/parameters.yml`` mit deiner.
|
||||
|
||||
Bitte überprüfe, dass deine ``app/config/parameters.yml`` alle notwendigen Parameter enthält. Eine Dokumentation darüber `findest du hier <http://doc.wallabag.org/de/master/user/parameters.html>`_.
|
||||
|
||||
Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue Installation kopieren.
|
||||
|
||||
Leere den ``var/cache``-Ordner.
|
||||
|
||||
Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren. Wir gehen in diesem Fall davon aus, dass das Tabellenpräfix ``wallabag_`` ist.
|
||||
|
||||
`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
|
||||
|
||||
Upgrade von 2.0.x zu 2.1.1
|
||||
---------------------------
|
||||
|
||||
|
@ -60,39 +116,6 @@ Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren.
|
|||
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
||||
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
||||
|
||||
Upgrade von 2.1.x zu 2.1.y
|
||||
-----------------------------
|
||||
|
||||
Upgrade auf einem dedizierten Webserver
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Um deine wallabag-Installation auf die letzte Version zu aktualisieren, führe den folgenden Befehl in deinem wallabag-Ordner aus:
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
|
||||
Upgrade auf einem Shared Hosting
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sichere deine ``app/config/parameters.yml``-Datei.
|
||||
|
||||
Lade das letzte Release von wallabag herunter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
Du findest den `aktuellen MD5-Hash auf unserer Webseite <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extrahiere das Archiv in deinen wallabag-Ordner und ersetze die ``app/config/parameters.yml`` mit deiner.
|
||||
|
||||
Bitte überprüfe, dass deine ``app/config/parameters.yml`` alle notwendigen Parameter enthält. Eine Dokumentation darüber `findest du hier <http://doc.wallabag.org/de/master/user/parameters.html>`_.
|
||||
|
||||
Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue Installation kopieren.
|
||||
|
||||
Leere den ``var/cache``-Ordner.
|
||||
|
||||
Upgrade von 1.x
|
||||
---------------
|
||||
|
||||
|
@ -100,4 +123,4 @@ Es gibt kein automatisiertes Skript, um wallabag 1.x auf wallabag 2.x zu aktuali
|
|||
|
||||
- deine Daten exportieren
|
||||
- wallabag 2.x installieren (Dokumentation <http://doc.wallabag.org/en/master/user/installation.html>`_ )
|
||||
- die Daten in die neue Installation importieren (`Dokumentation <http://doc.wallabag.org/en/master/user/import.html>`_ )
|
||||
- die Daten in die neue Installation importieren (`Dokumentation <http://doc.wallabag.org/en/master/user/import.html>`_ )
|
||||
|
|
|
@ -48,6 +48,7 @@ Edit your ``app/config/parameters.yml`` file to edit RabbitMQ configuration. The
|
|||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
rabbitmq_prefetch_count: 10 # read http://www.rabbitmq.com/consumer-prefetch.html
|
||||
|
||||
Enable RabbitMQ in wallabag
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -150,7 +151,7 @@ Depending on which service you want to import from you need to enable one (or ma
|
|||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message :
|
||||
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
Maintenance mode
|
||||
================
|
||||
|
||||
If you have some long tasks to do on your wallabag instance, you can enable a maintenance mode.
|
||||
Nobody will have access to your instance.
|
||||
|
||||
Enable maintenance mode
|
||||
-----------------------
|
||||
|
||||
To enable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock --no-interaction -e=prod
|
||||
|
||||
You can set your IP address in ``app/config/config.yml`` if you want to access to wallabag even if maintenance mode is enabled. For example:
|
||||
|
||||
::
|
||||
|
||||
lexik_maintenance:
|
||||
authorized:
|
||||
ips: ['127.0.0.1']
|
||||
|
||||
|
||||
Disable maintenance mode
|
||||
------------------------
|
||||
|
||||
To disable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
56
docs/en/developer/paywall.rst
Normal file
56
docs/en/developer/paywall.rst
Normal file
|
@ -0,0 +1,56 @@
|
|||
Articles behind a paywall
|
||||
=========================
|
||||
|
||||
wallabag can fetch articles from websites which use a paywall system.
|
||||
|
||||
Enable paywall authentication
|
||||
-----------------------------
|
||||
|
||||
In internal settings, in the **Article** section, enable authentication for websites with paywall (with the value 1).
|
||||
|
||||
Configure credentials in wallabag
|
||||
---------------------------------
|
||||
|
||||
Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. Here is an example for some french websites:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
sites_credentials:
|
||||
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
|
||||
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
|
||||
|
||||
.. note::
|
||||
|
||||
These credentials will be shared between each user of your wallabag instance.
|
||||
|
||||
Parsing configuration files
|
||||
---------------------------
|
||||
|
||||
.. note::
|
||||
|
||||
Read `this part of the documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_ to understand the configuration files.
|
||||
|
||||
Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``,
|
||||
``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``.
|
||||
|
||||
Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated
|
||||
on a website where the login form is loaded after the page (by ajax for example).
|
||||
|
||||
``login_uri`` is the action URL of the form (``action`` attribute in the form).
|
||||
``login_username_field`` is the ``name`` attribute of the login field.
|
||||
``login_password_field`` is the ``name`` attribute of the password field.
|
||||
|
||||
For example:
|
||||
|
||||
.. code::
|
||||
|
||||
title://div[@id="titrage-contenu"]/h1[@class="title"]
|
||||
body: //div[@class="contenu-html"]/div[@class="page-pane"]
|
||||
|
||||
requires_login: yes
|
||||
|
||||
login_uri: http://www.arretsurimages.net/forum/login.php
|
||||
login_username_field: username
|
||||
login_password_field: password
|
||||
|
||||
not_logged_in_xpath: //body[@class="not-logged-in"]
|
|
@ -20,7 +20,7 @@ is the ISO 639-1 code of your language (`see wikipedia <https://en.wikipedia.org
|
|||
Other files to translate:
|
||||
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
|
||||
|
||||
You have to create ``THE_TRANSLATION_FILE.CODE.yml`` files.
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ The documentation is available in other languages:
|
|||
|
||||
developer/api
|
||||
developer/docker
|
||||
developer/paywall
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/asynchronous
|
||||
|
|
|
@ -26,6 +26,15 @@ Reading speed
|
|||
wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are
|
||||
a fast or a slow reader. wallabag will recalculate the reading time for each article.
|
||||
|
||||
Where do you want to be redirected after mark an article as read?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Each time you'll do some actions (after marking an article as read/favorite,
|
||||
after deleting an article, after removing a tag from an entry), you can be redirected:
|
||||
|
||||
- To the homepage
|
||||
- To the current page
|
||||
|
||||
Language
|
||||
~~~~~~~~
|
||||
|
||||
|
@ -43,11 +52,16 @@ Now you have three links, one for each status: add them into your favourite RSS
|
|||
|
||||
You can also define how many articles you want in each RSS feed (default value: 50).
|
||||
|
||||
There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page.
|
||||
The pagination follow `the RFC <https://tools.ietf.org/html/rfc5005#page-4>`_ about that, which means you'll find the ``next``, ``previous`` & ``last`` page link inside the `<channel>` tag of each RSS feed.
|
||||
|
||||
User information
|
||||
----------------
|
||||
|
||||
You can change your name, your email address and enable ``Two factor authentication``.
|
||||
|
||||
If the wallabag instance has more than one enabled user, you can delete your account here. **Take care, we delete all your data**.
|
||||
|
||||
Two factor authentication (2FA)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -30,6 +30,11 @@ Language
|
|||
wallabag (via graby) can detect article language. It's easy to you to retrieve articles
|
||||
written in a specific language.
|
||||
|
||||
HTTP status
|
||||
-----------
|
||||
|
||||
You can retrieve the articles by filtering by their HTTP status code: 200, 404, 500, etc.
|
||||
|
||||
Reading time
|
||||
------------
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
Migrate from ...
|
||||
================
|
||||
|
||||
In wallabag 2.x, you can import data from:
|
||||
In wallabag 2.x, you can import data from:
|
||||
|
||||
- `Pocket <#id1>`_
|
||||
- `Readability <#id2>`_
|
||||
- `Instapaper <#id4>`_
|
||||
- `wallabag 1.x <#id6>`_
|
||||
- `wallabag 2.x <#id7>`_
|
||||
- `Pocket <#id1>`_
|
||||
- `Readability <#id2>`_
|
||||
- `Instapaper <#id4>`_
|
||||
- `wallabag 1.x <#id6>`_
|
||||
- `wallabag 2.x <#id7>`_
|
||||
|
||||
We also developed `a script to execute migrations via command-line interface <#import-via-command-line-interface-cli>`_.
|
||||
|
||||
|
@ -57,8 +57,24 @@ and then select your json file and upload it.
|
|||
|
||||
Your data will be imported. Data import can be a demanding process for your server.
|
||||
|
||||
Instapaper
|
||||
----------
|
||||
From Pinboard
|
||||
-------------
|
||||
|
||||
Export your Pinboard data
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On the backup (`https://pinboard.in/settings/backup <https://pinboard.in/settings/backup>`_) page, click on "JSON" in the "Bookmarks" section. A JSON file will be downloaded (like ``pinboard_export``).
|
||||
|
||||
Import your data into wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Click on ``Import`` link in the menu, on ``Import contents`` in Pinboard section
|
||||
and then select your json file and upload it.
|
||||
|
||||
Your data will be imported. Data import can be a demanding process for your server.
|
||||
|
||||
From Instapaper
|
||||
---------------
|
||||
|
||||
Export your Instapaper data
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
@ -16,7 +16,7 @@ Install Composer:
|
|||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
curl -s https://getcomposer.org/installer | php
|
||||
|
||||
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
|
||||
|
||||
|
@ -85,7 +85,7 @@ Execute this command to download and extract the latest package:
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
You will find the `md5 hash of the latest package on our website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ If you don't know which value you need to set, please leave the default one.
|
|||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
redis_path: null
|
||||
redis_password: null
|
||||
|
||||
Meaning of each parameter
|
||||
-------------------------
|
||||
|
@ -55,6 +56,7 @@ Meaning of each parameter
|
|||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it empty for other database"
|
||||
"database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity"
|
||||
"database_socket", "null", "If your database is using a socket instead of tcp, put the path of the socket (other connection parameters will then be ignored)"
|
||||
"database_charset", "utf8mb4", "For PostgreSQL & SQLite you should use utf8, for MySQL use utf8mb4 which handle emoji"
|
||||
|
||||
.. csv-table:: Configuration to send emails from wallabag
|
||||
:header: "name", "default", "description"
|
||||
|
@ -91,3 +93,4 @@ Meaning of each parameter
|
|||
"redis_host", "localhost", "IP or hostname of the target server (ignored for unix scheme)"
|
||||
"redis_port", "6379", "TCP/IP port of the target server (ignored for unix scheme)"
|
||||
"redis_path", "null", "Path of the UNIX domain socket file used when connecting to Redis using UNIX domain sockets"
|
||||
"redis_password", "null", "Password defined in the Redis server configuration (parameter `requirepass` in `redis.conf`)"
|
||||
|
|
797
docs/en/user/query-upgrade-21-22.rst
Normal file
797
docs/en/user/query-upgrade-21-22.rst
Normal file
|
@ -0,0 +1,797 @@
|
|||
Migration 20161001072726
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
|
||||
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
We didn't write down migration for ``20161001072726``.
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
|
||||
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
We didn't write down migration for ``20161001072726``.
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
This migration can only be executed safely on MySQL or PostgreSQL.
|
||||
|
||||
Migration 20161022134138
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
|
||||
ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
|
||||
ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
|
||||
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
|
||||
PostgreSQL and SQLite
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This migration only apply to MySQL.
|
||||
|
||||
Migration 20161024212538
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
|
||||
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
|
||||
ALTER TABLE wallabag_oauth2_clients DROP user_id
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
|
||||
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
|
||||
ALTER TABLE wallabag_oauth2_clients DROP user_id
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
|
||||
DROP TABLE wallabag_oauth2_clients
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
|
||||
INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
|
||||
DROP TABLE __temp__wallabag_oauth2_clients
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_635D765EA76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
|
||||
DROP TABLE wallabag_oauth2_clients
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
|
||||
DROP TABLE __temp__wallabag_oauth2_clients
|
||||
|
||||
Migration 20161031132655
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
Migration 20161104073720
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_created_at ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX idx_entry_created_at
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_created_at
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at_idx
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
|
||||
Migration 20161106113822
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP action_mark_as_read
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP action_mark_as_read
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_87E64C53A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
|
||||
DROP TABLE wallabag_config
|
||||
CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
|
||||
DROP TABLE __temp__wallabag_config
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
|
||||
|
||||
Migration 20161117071626
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
Migration 20161118134328
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry DROP http_status
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry DROP http_status
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
|
||||
Migration 20161122144743
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
Migration 20161122203647
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP expired
|
||||
ALTER TABLE wallabag_user DROP credentials_expired
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_1D63E7E5C05FB297
|
||||
DROP INDEX UNIQ_1D63E7E5A0D96FBF
|
||||
DROP INDEX UNIQ_1D63E7E592FC23A8
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
|
||||
DROP TABLE wallabag_user
|
||||
CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
|
||||
DROP TABLE __temp__wallabag_user
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
Migration 20161128084725
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP list_mode
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP list_mode
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_87E64C53A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
|
||||
DROP TABLE wallabag_config
|
||||
CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
|
||||
DROP TABLE __temp__wallabag_config
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
|
||||
|
||||
Migration 20161128131503
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP locked
|
||||
ALTER TABLE wallabag_user DROP credentials_expire_at
|
||||
ALTER TABLE wallabag_user DROP expires_at
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_1D63E7E592FC23A8
|
||||
DROP INDEX UNIQ_1D63E7E5A0D96FBF
|
||||
DROP INDEX UNIQ_1D63E7E5C05FB297
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
|
||||
DROP TABLE wallabag_user
|
||||
CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM __temp__wallabag_user
|
||||
DROP TABLE __temp__wallabag_user
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
|
||||
|
||||
Migration 20161214094403
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_uid ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX idx_entry_uid
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at_idx
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_uid
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
|
@ -1,21 +1,87 @@
|
|||
==================================
|
||||
Upgrade your wallabag installation
|
||||
==================================
|
||||
|
||||
You will find here different ways to upgrade your wallabag:
|
||||
|
||||
- `from 2.1.x to 2.2.x <#upgrading-from-2-1-x-to-2-2-x>`_
|
||||
- `from 2.0.x to 2.1.1 <#upgrade-from-2-0-x-to-2-1-1>`_
|
||||
- `from 2.1.x to 2.1.y <#upgrading-from-2-1-x-to-2-1-y>`_
|
||||
- `from 1.x to 2.x <#from-wallabag-1-x>`_
|
||||
|
||||
*****************************
|
||||
Upgrading from 2.1.x to 2.2.x
|
||||
*****************************
|
||||
|
||||
Upgrade on a dedicated web server
|
||||
=================================
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
|
||||
Explanations about database migrations
|
||||
--------------------------------------
|
||||
|
||||
During the update, we execute database migrations.
|
||||
|
||||
All the database migrations are stored in ``app/DoctrineMigrations``. You can execute each migration individually:
|
||||
``bin/console doctrine:migrations:execute 20161001072726 --env=prod``.
|
||||
|
||||
You can also cancel each migration individually: ``bin/console doctrine:migrations:execute 20161001072726 --down --env=prod``.
|
||||
|
||||
Here is the migrations list for 2.1.x to 2.2.0 release:
|
||||
|
||||
* ``20161001072726``: added foreign keys for account resetting
|
||||
* ``20161022134138``: converted database to ``utf8mb4`` encoding (for MySQL only)
|
||||
* ``20161024212538``: added ``user_id`` column on ``oauth2_clients`` to prevent users to delete API clients from other users
|
||||
* ``20161031132655``: added the internal setting to enable/disable downloading pictures
|
||||
* ``20161104073720``: added ``created_at`` index on ``entry`` table
|
||||
* ``20161106113822``: added ``action_mark_as_read`` field on ``config`` table
|
||||
* ``20161117071626``: added the internal setting to share articles to unmark.it
|
||||
* ``20161118134328``: added ``http_status`` field on ``entry`` table
|
||||
* ``20161122144743``: added the internal setting to enable/disable fetching articles with paywall
|
||||
* ``20161122203647``: dropped ``expired`` and ``credentials_expired`` fields on ``user`` table
|
||||
* ``20161128084725``: added ``list_mode`` field on ``config`` table
|
||||
* ``20161128131503``: dropped ``locked``, ``credentials_expire_at`` and ``expires_at`` fields on ``user`` table
|
||||
* ``20161214094403``: added ``uid`` index on ``entry`` table
|
||||
|
||||
Upgrade on a shared hosting
|
||||
===========================
|
||||
|
||||
Backup your ``app/config/parameters.yml`` file.
|
||||
|
||||
Download the last release of wallabag:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
You will find the `md5 hash of the latest package on our website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||
|
||||
Please check that your ``app/config/parameters.yml`` contains all the required parameters. You can find `here a documentation about parameters <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
||||
|
||||
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
||||
|
||||
Empty ``var/cache`` folder.
|
||||
|
||||
You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_``. Don't forgete to backup your database before migrating.
|
||||
|
||||
You may encounter issues with indexes names: if so, please change queries with the correct index name.
|
||||
|
||||
`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
|
||||
|
||||
***************************
|
||||
Upgrade from 2.0.x to 2.1.1
|
||||
---------------------------
|
||||
***************************
|
||||
|
||||
.. warning::
|
||||
|
||||
Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade.
|
||||
|
||||
Upgrade on a dedicated web server
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
=================================
|
||||
|
||||
::
|
||||
|
||||
|
@ -28,7 +94,7 @@ Upgrade on a dedicated web server
|
|||
php bin/console cache:clear --env=prod
|
||||
|
||||
Upgrade on a shared hosting
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
===========================
|
||||
|
||||
Backup your ``app/config/parameters.yml`` file.
|
||||
|
||||
|
@ -60,41 +126,9 @@ You must run some SQL queries to upgrade your database. We assume that the table
|
|||
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
||||
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
||||
|
||||
Upgrading from 2.1.x to 2.1.y
|
||||
-----------------------------
|
||||
|
||||
Upgrade on a dedicated web server
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
In order to upgrade your wallabag installation and get the last version, run the following command in you wallabag folder:
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
|
||||
Upgrade on a shared hosting
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Backup your ``app/config/parameters.yml`` file.
|
||||
|
||||
Download the last release of wallabag:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
You will find the `md5 hash of the latest package on our website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||
|
||||
Please check that your ``app/config/parameters.yml`` contains all the required parameters. You can find `here a documentation about parameters <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
||||
|
||||
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
||||
|
||||
Empty ``var/cache`` folder.
|
||||
|
||||
*****************
|
||||
From wallabag 1.x
|
||||
-----------------
|
||||
*****************
|
||||
|
||||
There is no automatic script to update from wallabag 1.x to wallabag 2.x. You need to:
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configurati
|
|||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
rabbitmq_prefetch_count: 10 # lire http://www.rabbitmq.com/consumer-prefetch.html
|
||||
|
||||
Activer RabbitMQ dans wallabag
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -150,7 +151,7 @@ En fonction du service dont vous souhaitez importer vos données, vous devez act
|
|||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
Si vous souhaitez démarrer l'import pour quelques messages uniquement, vous pouvez spécifier cette valeur en paramètre (ici 12) et le client va s'arrêter après le 12ème message :
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue