-
Notifications
You must be signed in to change notification settings - Fork 16
feat: allow auto increment to be set through Blueprint #276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Warning Rate limit exceeded@taka-oyama has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 10 minutes and 12 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
WalkthroughThe Docker image version for the emulator service was updated. Support for auto-incrementing big integer columns was added, including changes to the schema blueprint, grammar, and column definition annotations to handle the Possibly related PRs
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
tests/TestCase.php (1)
147-152
: Database option setup looks good but could benefit from documentation.The new code correctly sets the
default_sequence_kind
option tobit_reversed_positive
immediately after database creation, which supports the auto-increment functionality introduced in this PR. This setting is necessary for proper operation of auto-incrementing columns in Spanner.Consider adding a brief comment explaining why this specific database option is being set, which would help future maintainers understand its purpose and significance in the test environment.
$conn->createDatabase($this->getTestDatabaseDDLs()); + // Configure database to use bit-reversed sequences for auto-increment columns $conn->getSchemaBuilder()->setDatabaseOptions([ 'default_sequence_kind' => 'bit_reversed_positive', ]);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
📒 Files selected for processing (4)
src/Schema/Builder.php
(2 hunks)src/Schema/Grammar.php
(2 hunks)tests/Schema/BlueprintTest.php
(1 hunks)tests/TestCase.php
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- tests/Schema/BlueprintTest.php
- src/Schema/Builder.php
- src/Schema/Grammar.php
🧰 Additional context used
🧬 Code Graph Analysis (1)
tests/TestCase.php (2)
src/Connection.php (1)
getSchemaBuilder
(221-228)src/Schema/Builder.php (1)
setDatabaseOptions
(49-60)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the following section of README.md
be modified/updated/revised?
Migrations
Since Cloud Spanner does not support AUTO_INCREMENT attribute, Blueprint::increments (and all of its variants) will create a column of type STRING(36) DEFAULT (GENERATE_UUID()) to generate and fill the column with a UUID and flag it as a primary key.
# Conflicts: # src/Schema/Builder.php
794be3c
to
6da79b4
Compare
Thank you for reminding about the README. It has been updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
README.md (1)
113-121
: DocumentsetDatabaseOptions
for sequence configuration
Since the PR introducessetDatabaseOptions
in the schema builder to control database-level sequence settings, it would be helpful to show users how to enable or customize auto-increment behavior. For example, add before thecreate
call:$schemaBuilder = app(\Illuminate\Database\Schema\Builder::class); +// Configure database options for auto-increment sequences +$schemaBuilder->setDatabaseOptions([ + 'sequenceOptions' => [ + 'sequenceKind' => 'PROVISIONAL', + 'startWithCounter' => 1, + ], +]); $schemaBuilder->create('user', function (Blueprint $table) { $table->integer('id')->primary()->autoIncrement(); });This clarifies how to adjust the underlying Spanner sequence settings when using
autoIncrement()
.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
README.md
(1 hunks)compose.yaml
(1 hunks)src/Schema/Blueprint.php
(1 hunks)src/Schema/Builder.php
(2 hunks)src/Schema/ColumnDefinition.php
(1 hunks)src/Schema/Grammar.php
(2 hunks)src/Schema/IntColumnDefinition.php
(0 hunks)tests/Schema/BlueprintTest.php
(1 hunks)tests/TestCase.php
(1 hunks)
💤 Files with no reviewable changes (1)
- src/Schema/IntColumnDefinition.php
🚧 Files skipped from review as they are similar to previous changes (7)
- tests/TestCase.php
- compose.yaml
- src/Schema/Blueprint.php
- src/Schema/Builder.php
- src/Schema/ColumnDefinition.php
- src/Schema/Grammar.php
- tests/Schema/BlueprintTest.php
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Run-PHPUnit
🔇 Additional comments (1)
README.md (1)
113-121
: Ensure correct column type for auto-increment
The AI summary and implementation focus on big integer auto-increment support. The example uses$table->integer('id')
, which in Laravel typically maps to a 32-bit column. To match Spanner’s 64-bit integer and the added big integer auto-increment feature, the snippet should use:- $table->integer('id')->primary()->autoIncrement(); + $table->bigInteger('id')->primary()->autoIncrement();Please verify the intended Blueprint API and update the documentation accordingly.
Likely an incorrect or invalid review comment.
#273 and #275 needs to be fixed for analyze to pass.