Skip to content

Commit

Permalink
Merge pull request #1538 from xwp/tools/create-large-database
Browse files Browse the repository at this point in the history
add files to generate and remove test data
  • Loading branch information
tharsheblows authored Aug 5, 2024
2 parents 6fb532a + 6cd76a9 commit 9c2751f
Show file tree
Hide file tree
Showing 8 changed files with 575 additions and 0 deletions.
3 changes: 3 additions & 0 deletions contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ We use npm as the canonical task runner for the project. The following commands
- `npm run test-xdebug` will run the PHPunit tests with Xdebug enabled.
- `npm run switch-to:php7.4` and `npm run switch-to:php8.2` will switch you to either PHP 7.4 or PHP 8.2
- `npm run document:connectors` generates [connectors.md](connectors.md). This runs via your local php.
- `npm run large-log-tables:generate` inserts ~1.6M rows to `wp_stream` and ~8.4M rows to `wp_streammeta` for testing
- `npm run large-log-tables:remove` removes the test data only
- `npm run large-log-tables:show` shows how much test data is in the tables, this does not include non-test entries

By default, tests have `WP_DEBUG` as false. You can override this if necessary by setting `WP_STREAM_TEST_DEBUG` to "yes".

Expand Down
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ services:
- .:/var/www/html/wp-content/plugins/stream-src # Working directory.
- ./build:/var/www/html/wp-content/plugins/stream # Built version for testing.
- ./local/public:/var/www/html # WP core files.
- ./local/scripts:/var/local/scripts # Let us access the scripts in the container.
restart: always
extra_hosts:
- host.docker.internal:host-gateway
Expand Down
222 changes: 222 additions & 0 deletions local/scripts/large-datasets/bulk-insert-logs.sample.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@

/* This is a fallback file for debugging purposes. :) */

DELIMITER / /


/ / DROP PROCEDURE IF EXISTS generateStreamLogs

/ / CREATE PROCEDURE generateStreamLogs(logdate DATETIME) BEGIN DECLARE i INT DEFAULT 0;

SELECT ( CONCAT( 'Generating data for ', logdate ) );

WHILE (i <= 100) DO
INSERT INTO
wordpress.wp_stream (
site_id,
blog_id,
object_id,
user_id,
user_role,
summary,
created,
connector,
context,
`action`,
ip
)
VALUES
(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
),(
1,
1,
i,
1,
'administrator',
'This is the summary',
logdate,
'posts',
'post',
'test',
'127.0.0.1'
);

INSERT INTO
wordpress.wp_stream_meta (record_id, meta_key, meta_value)
VALUES
(LAST_INSERT_ID() + 0, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 0, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 0, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 0, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 0, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 1, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 1, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 1, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 1, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 1, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 2, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 2, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 2, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 2, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 2, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 3, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 3, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 3, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 3, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 3, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 4, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 4, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 4, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 4, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 4, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 5, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 5, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 5, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 5, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 5, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 6, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 6, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 6, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 6, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 6, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 7, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 7, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 7, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 7, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 7, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 8, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 8, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 8, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 8, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 8, 'test_meta_key_5', 'meta_value_5'),(LAST_INSERT_ID() + 9, 'test_meta_key_1', 'meta_value_1'),
(LAST_INSERT_ID() + 9, 'test_meta_key_2', 'meta_value_2'),
(LAST_INSERT_ID() + 9, 'test_meta_key_3', 'meta_value_3'),
(LAST_INSERT_ID() + 9, 'test_meta_key_4', 'meta_value_4'),
(LAST_INSERT_ID() + 9, 'test_meta_key_5', 'meta_value_5');

SET
i = i + 1;

END WHILE;

END;

/ / DROP PROCEDURE IF EXISTS generateStreamLogsByDays

/ / CREATE PROCEDURE generateStreamLogsByDays() BEGIN DECLARE j INT DEFAULT 0;

WHILE (j <= 1640) DO CALL generateStreamLogs(
DATE_ADD(
CAST('2018-07-02 00:00:00' as DATETIME),
INTERVAL - j DAY
)
);

SET
j = j + 1;

END WHILE;

END;

/ / CALL generateStreamLogsByDays();

Loading

0 comments on commit 9c2751f

Please sign in to comment.