Morris Jobke
dbc465de97
use injected config object and fix typos
2014-12-22 10:55:52 +01:00
Morris Jobke
de25084def
inject \OCP\IConfig instance in migrator
2014-12-22 10:47:10 +01:00
tbelau666
ad8d55c327
Use Doctrines filter by table name
...
Doctrine's SchemaManager can filter table names by regular expression.
On this way it picks up only ownClouds's tables in a database.
by tbelau666
2014-12-22 10:45:32 +01:00
Morris Jobke
5383d83f9e
Change support message to be more explicit about the enterprise edition
2014-12-20 11:57:15 +01:00
Arthur Schiwon
ec0f80fee9
Split mapping from Access and Helper classes into it's own. Fully test them, too.
...
remove unused methods
split mapping methods off from Access class
fix DB query handling
move 'clear mapping' methods from static helper to new mapping class
add tests
test directly with DB
finishing tests and fix return value from setDNbyUUID
add corresponding class for groups and make abstract test class neutral. helper tests is now obsolete as the tested functions were moved to the new mapper class.
add missing info to PHPDoc
add unmap method
fix namespaces
fix test inheritance
PHPDoc and a small code restructure for scrutinizer, no effective changes
PostgreSQL does not accept LIMIT in DELETE queries
phpdoc fixes, no code changes
2014-12-19 18:26:12 +01:00
Robin Appelman
6984fa8a19
Quote identifiers for oracle
2014-12-09 17:26:53 +01:00
Robin Appelman
778d8dbafd
Add tableExists to public db api
2014-12-09 17:26:53 +01:00
Robin Appelman
8af3991d0c
Add dropTable to IDBConnection
2014-12-09 17:26:53 +01:00
Morris Jobke
50c2a819a0
Extract interaction with config.php into SystemConfig
...
* introduce SystemConfig to avoid DI circle (used by database connection which is itself needed by AllConfig that itself contains the methods to access the config.php which then would need the database connection - did you get it? ;))
* use DI container and use that method in legacy code paths (for easier refactoring later)
* create and use getSystemConfig instead of query() in DI container
2014-12-08 22:29:42 +01:00
Thomas Müller
a6c088a1ef
adding new config parameter for sqlite to specify the journal mode
2014-11-25 16:29:06 +01:00
Morris Jobke
8ae8eb4734
drop dependency of some commands on old config object
2014-11-20 15:03:16 +01:00
Lukas Reschke
0b9dffa828
Make declaration compatible
...
Fixes #12236
2014-11-17 18:30:17 +01:00
Arthur Schiwon
74ffda8261
do not output DB information, and do not set header
2014-11-14 17:43:22 +01:00
Arthur Schiwon
08205c63f9
errors are already logged
2014-11-14 16:59:54 +01:00
Arthur Schiwon
7ed678b04d
eliminate OC_Template::printErrorPage in database classes, fixes #12182
2014-11-14 15:48:55 +01:00
Jörn Friedrich Dreyer
e16a58220d
allow passing driver options, fixes #11718
2014-10-27 12:30:29 +01:00
Lukas Reschke
f901c5ff08
Fix PHPDoc and remove explicit type hint
2014-10-24 15:49:55 +02:00
Lukas Reschke
b3a04840b5
Add type hinting to functions
...
It's only reasonable to have proper type hinting here which might even help us to catch bugs.
2014-10-24 14:13:40 +02:00
Lukas Reschke
d060180140
Use function outside of loop
...
Otherwise the function is executed n times which is a lot of overhead
2014-10-24 12:27:53 +02:00
Thomas Müller
6c1871da06
Merge pull request #10985 from owncloud/db-cleanup
...
Cleanup database handling
2014-10-23 13:48:33 +02:00
Jörn Friedrich Dreyer
b7fa644a54
Merge pull request #9586 from owncloud/enhanced-sql-script-generation-oracle-master
...
Special treatment for Oracle
2014-10-22 14:54:42 +02:00
Robin Appelman
e6f6cdd19f
Bit more cleanup
2014-10-22 12:29:53 +02:00
Robin Appelman
2ae6a0d96d
Move creating the database connection to the server container
2014-10-22 12:29:53 +02:00
Robin Appelman
d4e929c37a
Remove implicit prepared statement cache and get the connection from the server container in \OC_DB
2014-10-22 12:26:43 +02:00
Robin Appelman
72f99f5041
Remove \OC\DB\ConnectionWrapper, have \OC\DB\Connection implement \OCP\IDBConnection directly instead
2014-10-22 12:26:43 +02:00
Lukas Reschke
af335a39f1
Add PHPDoc about sanitization of "insertIfNotExist"
...
Let's document this potential pitfall properly.
2014-10-17 11:06:49 +02:00
Thomas Müller
f7097faf82
Special treatment for Oracle
2014-10-16 17:02:15 +02:00
Thomas Müller
7537d405e3
adding 'smallint unsigned' to type mapping for sqlite
2014-09-20 20:06:44 +02:00
Robin Appelman
a85f0ae2da
Fix ILIKE without wildcards for oracle
2014-09-18 15:09:57 +02:00
Robin Appelman
67b1ec1faf
Implement ILIKE for sqlite
2014-09-17 13:47:55 +02:00
Robin Appelman
60587e9dcd
Make sqlite LIKE case sensitive on default
2014-09-17 13:47:33 +02:00
Thomas Müller
ca35d86c5a
adding ILIKE to AdapterSQLSrv
2014-09-16 15:44:21 +02:00
Robin Appelman
1771bfc2f2
Introduce cross-db ILIKE
2014-09-16 15:32:34 +02:00
Thomas Müller
d824d03fe1
Disable database migrations for MSSQL - scripts have to be applied manually
2014-09-15 15:00:32 +02:00
Lukas Reschke
353155b516
Merge pull request #7323 from owncloud/Jonny007-MKD-master
...
Update adapter.php
2014-09-09 11:31:50 +02:00
Thomas Müller
b8b2ef8748
no statement caching for Oracle
2014-08-22 12:06:36 +02:00
Thomas Müller
58472a2660
migration test for sqlite - adding type mapping for 'tinyint unsigned'
2014-07-29 09:18:37 +02:00
Thomas Müller
c87f425fe7
generate copy of sqlite database file in data directory
2014-07-28 10:29:39 +02:00
Thomas Müller
7d60f7a222
register type mappings for unknown/unsupported mysql types
2014-07-24 12:17:26 +02:00
Thomas Müller
363ba04f5e
only commit in case a transaction is active
2014-07-23 20:13:19 +02:00
Andreas Fischer
d8bd8c4b66
Document why we have to check with defined() first.
2014-07-16 15:13:35 +02:00
Andreas Fischer
e26612244a
Make MySQL return "number of found rows" instead of number of "affected rows".
2014-07-16 14:35:47 +02:00
Vincent Petry
10a29556b0
- Added test to trigger index id error
...
- re-enable encryption migration tests
- sqlite requires reconnect after schema changes
2014-07-14 16:20:09 +02:00
Robin Appelman
76c709d7de
Add repair step to set MySQL collation to utf8_bin
...
Set default collation of mysql connection to utf8_bin
Set utf_bin as default collation for new tables
2014-07-08 15:12:07 +02:00
Robin Appelman
c4fa07d7cf
Also update sqliteadapter
2014-07-02 15:27:27 +02:00
Jonny007-MKD
4161fd2408
Update adapter.php
...
Modified insertIfNotExist() to support NULL values
2014-07-01 17:47:27 +02:00
Vincent Petry
b752aff51d
Fix migrator tests to use the correct migrator instances
2014-07-01 12:54:35 +02:00
Joas Schilling
0c711e1cfa
Use get random bytes as uniqeid() is not unique in some cases
...
Fix #9161
2014-06-30 11:10:10 +02:00
Vincent Petry
7aa11b4361
Do not rename primary key index when renaming table
...
When the migrator renames a table, for example for upgrade simulation,
it should not rename the primary key to avoid messing up with the diff
because the MySQL Doctrine code expects that index to always be called
"primary".
2014-06-17 15:23:18 +02:00
Thomas Müller
fe8bae31dc
adding PK to table encryption
...
adding auto increment/PK to table files_trash
adding PK to table ldap_user_mapping and ldap_group_members
adding PK to table ldap_group_mapping
truncate permissions table to allow smooth creation of primary key
adding unit test for creating an auto increment column on a table which already contains data
remove unneeded table files_trashsizes
fix unit test
no need to truncate *PREFIX*permissions
On Oracle adding auto increment columns is not working out of the box - Oracle migrations are to be done manually
2014-06-06 13:33:56 +02:00
Vincent Petry
d4ffafe467
Removed simulate db update flag and split into separate methods
2014-06-04 18:17:46 +02:00
Vincent Petry
5b97369b00
Simulate apps database schema update on upgrade
...
When upgrade, also simulate the database schema update for apps before
doing the actual upgrade.
2014-06-04 17:16:44 +02:00
icewind1991
68b15f3282
Merge pull request #7015 from owncloud/db-migration-check-copy
...
Check database migration on a copy of the table first
2014-06-03 16:27:06 +02:00
Thomas Müller
2b1a7a76c3
Merge pull request #8425 from owncloud/columns_should_be_nullable_by_default
...
columns should be nullable by default
2014-06-03 12:55:42 +02:00
Robin Appelman
4429b54ce4
Fix typo
2014-06-03 12:00:39 +02:00
Robin Appelman
82b982a4eb
Better unique names for temporary tables
2014-06-03 11:24:31 +02:00
Robin Appelman
3be2643168
Add `generateChangeScript()` back
2014-06-03 11:19:58 +02:00
Robin Appelman
397a763c49
add a getter for the table
2014-06-03 11:18:46 +02:00
Robin Appelman
c6053b2830
Quote identifiers on mysql
2014-06-03 11:18:45 +02:00
Robin Appelman
6f71419f2b
Skip migration checks for all sql backends besides mysql, postgres and sqlite
2014-06-03 11:18:45 +02:00
Robin Appelman
a59f6818eb
Only quote identifiers for oracle during migration
2014-06-03 11:18:45 +02:00
Robin Appelman
3b4555ca91
Try and check migration before applying it
2014-06-03 11:18:17 +02:00
Robin Appelman
adeac7aa39
Check sqlite migration on a copy of the database file
2014-06-03 11:17:21 +02:00
Robin Appelman
35550e8d9a
Fix migrator for postgres
2014-06-03 11:17:21 +02:00
Robin Appelman
be80dce585
Fix temporary schema creation
2014-06-03 11:17:21 +02:00
Robin Appelman
58c61c8336
Fix generating migration test schemas
2014-06-03 11:17:21 +02:00
Robin Appelman
0035147be9
Create unique names for temporary indexes
2014-06-03 11:17:21 +02:00
Robin Appelman
9c6a93a87c
Add a mechanism to try the database migration on a copy of the tables before running it on the "real" data
2014-06-03 11:17:21 +02:00
Thomas Müller
999f6216dc
- fix dropTable() and introduce tableExists()
...
- kill replaceDB() - this function is unused and it's implementation obviously wrong
- add method annotation OC_DB_StatementWrapper::fetchAll
- remove duplicate code in Test_DBSchema and reuse OC_DB::tableExists
- remove unused variables
2014-05-30 23:34:42 +02:00
Thomas Müller
b6d2d6329d
Merge pull request #8639 from owncloud/drop-brief
...
Remove all occurences of @brief and @returns from PHPDoc
2014-05-19 20:18:32 +02:00
Morris Jobke
dc36d30953
Remove all occurences of @brief and @returns from PHPDoc
...
* test case added to avoid adding them later
2014-05-19 17:50:53 +02:00
Frank Karlitschek
090d127050
Merge pull request #6457 from owncloud/db-convert-tool
...
Command line tool to convert current database to others, except sqlite
2014-05-19 16:41:31 +01:00
Robin McCorkell
87b548ed91
Fix all PHPDoc types and variable names, in /lib
2014-05-13 19:08:14 +01:00
Robin McCorkell
a7ae2e874a
Squash 'a | b' into 'a|b', in /lib
2014-05-13 19:08:14 +01:00
Thomas Müller
8314e5f4d1
fixing typos and adding PHPDoc
2014-05-12 21:58:09 +02:00
Jörn Friedrich Dreyer
6694129cbc
columns should be nullable by default
2014-05-01 23:03:45 +02:00
Andreas Fischer
714343cd74
Add Bart to PgSqlTools copyright.
2014-04-15 16:29:43 +02:00
Andreas Fischer
9cc41a2460
Move PostgreSQL sequence resynchronisation out into PgSqlTools class.
2014-04-14 18:37:47 +02:00
Andreas Fischer
f9853b253c
Deduplicate connection handling code into \OC\DB\ConnectionFactory
2014-03-31 20:09:07 +02:00
Thomas Müller
f1b085df01
adding @method annotation to declare methods which can be called on the wrapped statement object
2014-03-28 12:57:27 +01:00
Vincent Petry
79ae3c4527
Allow XML entity loader for MDB2 schema loader
...
Forward port of 762b0d9
from stable6 to master
2014-03-03 14:17:51 +01:00
Vincent Petry
22adc397de
Also quote old column name during DB migration
...
This fixes alter table commands that didn't quote the old column name
2014-02-27 09:09:16 +01:00
Scrutinizer Auto-Fixer
adaee6a5a1
Scrutinizer Auto-Fixes
...
This patch was automatically generated as part of the following inspection:
https://scrutinizer-ci.com/g/owncloud/core/inspections/cdfecc4e-a37e-4233-8025-f0d7252a8720
Enabled analysis tools:
- PHP Analyzer
- JSHint
- PHP Copy/Paste Detector
- PHP PDepend
2014-02-19 09:31:54 +01:00
Thomas Müller
c6f4f85e27
Merge branch 'master' into scrutinizer_documentation_patches
...
Conflicts:
lib/private/migration/content.php
2014-02-18 18:31:33 +01:00
Thomas Müller
8991e4505a
Merge pull request #6796 from owncloud/statementwrapper-bindparam
...
Add bindParam to the database statement wrapper
2014-02-18 18:13:57 +01:00
Lukas Reschke
3b1083f46e
Merge pull request #7176 from owncloud/style
...
Some style fixes
2014-02-18 17:30:26 +01:00
Thomas Müller
9fac95c2ab
Merge branch 'master' into scrutinizer_documentation_patches
...
Conflicts:
lib/private/appconfig.php
2014-02-14 23:03:27 +01:00
Bart Visscher
1fb5f96c37
Style fixes
2014-02-12 09:09:51 +01:00
Robin Appelman
cd3ef0bb9d
Add caching to appconfig
2014-02-07 14:03:39 +01:00
Jörn Friedrich Dreyer
2a6a9a8cef
polish documentation based on scrutinizer patches
2014-02-06 17:02:21 +01:00
Robin Appelman
504645cf00
Add bindParam to statement wrapper
2014-01-16 14:07:16 +01:00
Andreas Fischer
63a2bea7ec
Remove OC_DB_StatementWrapper::numRows().
...
Using this method will result in an unneccesary extra SQL query (which also may
return an incorrect result because the underlying table changed in the
meantime).
In general:
If you are performing an UPDATE, DELETE or equivalent query,
OC_DB_StatementWrapper::execute() will already give you the number of
"affected rows" via \Doctrine\DBAL\Driver\Statement::rowCount(). This will
not work for SELECT queries, however.
If you want to know whether a table contains any rows matching your condition,
use "SELECT id FROM ... WHERE ... LIMIT 1".
If you want to know whether a table contains any rows matching your condition
and you also need the data, use "SELECT ... FROM ... WHERE ...", then use
one of the fetch() methods.
If you want to count the number of rows matching your condition, use use
"SELECT COUNT(...) AS number_of_rows FROM ... WHERE ...", then use one of the
fetch() methods.
2013-12-21 19:36:14 +01:00
Oliver Gasser
3b0d0e2b1f
DB: Support DECIMAL(precision,scale) syntax in XML
...
Add support for specifying the precision and scale of a decimal data
type to the XML description language.
See owncloud/core#6475
2013-12-17 22:46:45 +01:00
Thomas Mueller
4fbc2774ef
on mssql the schema migration sometimes fails due to an already existing transaction - error: 'New transaction is not allowed because there are other threads running in the session.'
...
The solution is to simple reconnect to the database to start with a fresh connection
2013-11-26 22:39:01 +01:00
Bart Visscher
630e46f60a
Merge pull request #5789 from ogasser/db_fix_default_for_numeric
...
DB: Set correct default value for numeric types
2013-11-15 04:19:33 -08:00
Oliver Gasser
53f17a71d1
treat numeric as an alias for decimal
2013-11-12 13:55:20 +01:00
Oliver Gasser
4b01eaf6cc
changed type to decimal
2013-11-12 13:47:47 +01:00
Bart Visscher
dcca887f18
Don't set a default value when there isn't a default specified
2013-11-11 17:58:25 +01:00
Oliver Gasser
b278356eb9
DB: Set correct default value for numeric types
...
Set 0 as default value for columns with numeric data type instead of the
empty string ''. Otherwise the database complains about an invalid
default value for this column.
To reproduce put the following in your ````appinfo/database.xml````:
````
<field>
<name>modified</name>
<type>decimal</type>
<default/>
<notnull>true</notnull>
<length>15</length>
</field>
````
See owncloud/mozilla_sync#14
2013-11-10 14:15:33 +01:00
Andreas Fischer
8274d9f91c
Inherit lastInsertId() from Adapter.
2013-11-04 22:28:41 +01:00